Bug 549929 - Provide getDialogSettings outside of AbstractUIPlugin

# Moved dialog settings outside of AbstractUIPlugin
This change is needed to reduce the usage of this Activator. Skipping
Activators will reduce the time to startup the framework. In addition,
it provides a way of getting dialog settings outside of eclipse.ui.

## AbstractUIPlugin
All methods that deal with the old way of getting dialog settings
have been deprecated. Clients will not break because the same
functionality is delegated to IDialogSettingsProvider and
implemented in DialogSettingsProvider

## NEW API: IDialogSettingsProvider (IDSP)
A new abstraction has been made to just load and save the settings
without the assumption of the actual technique. When implemented,
like it was in AbstractUIPlugin, the burden of loading and saving
may now be done on a higher level.

While IDialogSettings assume a specific way of loading and saving,
the IDSP does not.

IDialogSettings Javadoc has been updated to point to the new API.

The load and save methods of AbstractUIPlugin were protected.
The load and save methods in IDSP are public. This gives clients
control over reloading and saving. Saving is done by Platform
on shutdown but must also be possible when running w/o Platform.

## NEW API: PlatformUI.getDialogSettingsProvider(Bundle)
The entry point to get platform dialog settings has been moved to
PlatformUI which in turn delegates to the internal
DialogSettingsProviderService class.

## DialogSettingsProviderService
This class is the central point of giving out instances of IDSP. It
will remember all the instances and takes care of saving the settings
when the Platform wants to shutdown. This class is internal.

## TESTS
Changed DialogSettingsCustomizationTest to use the new flow.

## Notes
The dialog settings are stored in the preferences instance scope of
"org.eclipse.ui". This is unfortunately hard-coded but will still
work outside of org.eclipse.ui.


Change-Id: I4e3338af9d69bd0fd5a9897afc788f8fa40f1026
Signed-off-by: Wim Jongman <wim.jongman@remainsoftware.com>
10 files changed
tree: 866afcfb2961348eb64b6eddb3cf58319e99f64c
  1. .mvn/
  2. bundles/
  3. examples/
  4. features/
  5. releng/
  6. tests/
  7. .gitignore
  8. CONTRIBUTING
  9. CONTRIBUTING.md
  10. LICENSE
  11. NOTICE
  12. pom.xml
  13. README.md
README.md

Contributing to Eclipse Platform UI project

Thanks for your interest in this project.

Project description:

Platform UI provides the basic building blocks for user interfaces built with Eclipse.

Some of these form the Eclipse Rich Client Platform (RCP) and can be used for arbitrary rich client applications, while others are specific to the Eclipse IDE. The Platform UI codebase is built on top of the Eclipse Standard Widget Toolkit (SWT), which is developed as an independent project.

Website: http://www.eclipse.org/platform/ui/

For more information, refer to the Platform UI wiki page.

How to contribute:

Contributions to Platform UI are most welcome. There are many ways to contribute, from entering high quality bug reports, to contributing code or documentation changes. For a complete guide, see the Platform UI - How to contribute wiki page page on the team wiki.

Test dependencies

Several test plug-ins have a dependency to the Mockito and Hamcrest libraries. Please install them from the Orbit Download page]3:

Currently the following plug-ins are required:

  • net.bytebuddy.byte-buddy
  • net.bytebuddy.byte-buddy-agent
  • org.hamcrest.core
  • org.mockito
  • org.objenesis

How to build on the command line

You need Maven 3.3.1 installed. After this you can run the build via the following command:

mvn clean verify -Pbuild-individual-bundles

Developer resources:

Information regarding source code management, builds, coding standards, and more.

Contributor License Agreement:

Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).

Search for bugs:

This project uses Bugzilla to track ongoing development and issues.

Create a new bug:

Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!

Contact:

Contact the project developers via the project's “dev” list.

License

Eclipse Public License (EPL) 2.0