tree 866afcfb2961348eb64b6eddb3cf58319e99f64c
parent 7f1bbae80300f5d01c9155f59a3a2ddd497152d1
author Wim Jongman <wim.jongman@remainsoftware.com> 1594979887 +0200
committer Wim Jongman <wim.jongman@remainsoftware.com> 1602942244 -0400

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>