void updateListDependencies() {
final String id = fStore.getString(PreferenceConstants.EDITOR_FOLDING_PROVIDER);
final ErlangFoldingStructureProviderDescriptor desc = fProviderDescriptors
.get(id);
IErlangFoldingPreferenceBlock prefs;
if (desc == null) {
// safety in case there is no such descriptor
final String message = PreferencesMessages.FoldingConfigurationBlock_error_not_exist;
ErlideUIPlugin.log(new Status(IStatus.WARNING, ErlideUIPlugin.PLUGIN_ID,
IStatus.OK, message, null));
prefs = new ErrorPreferences(message);
} else {
prefs = fProviderPreferences.get(id);
if (prefs == null) {
try {
prefs = desc.createPreferences();
fProviderPreferences.put(id, prefs);
} catch (final CoreException e) {
ErlideUIPlugin.log(e);
prefs = new ErrorPreferences(e.getLocalizedMessage());
}
}
}
Control control = fProviderControls.get(id);
if (control == null) {
control = prefs.createControl(fGroup);
if (control == null) {
final String message = PreferencesMessages.FoldingConfigurationBlock_info_no_preferences;
control = new ErrorPreferences(message).createControl(fGroup);
} else {
fProviderControls.put(id, control);
}
}
Dialog.applyDialogFont(control);
fStackLayout.topControl = control;
control.pack();
fGroup.layout();
fGroup.getParent().layout();
prefs.initialize();
}