}
Control control= (Control) fProviderControls.get(id);
if (control == null) {
final Control[] result= new Control[1];
ISafeRunnable runnable= new ISafeRunnable() {
public void run() throws Exception {
result[0]= fCurrentBlock.createControl(fGroup);
}
public void handleException(Throwable x) {
}
};
SafeRunner.run(runnable);
control= result[0];
if (control == null) {
String message= TextEditorMessages.SpellingConfigurationBlock_info_no_preferences;
EditorsPlugin.log(new Status(IStatus.WARNING, EditorsUI.PLUGIN_ID, IStatus.OK, message, null));
control= new ErrorPreferences(message).createControl(fGroup);
} else {
fProviderControls.put(id, control);
}
}
Dialog.applyDialogFont(control);
fStackLayout.topControl= control;
control.pack();
fGroup.layout();
fGroup.getParent().layout();
fStatusMonitor.statusChanged(new StatusInfo());
ISafeRunnable runnable= new ISafeRunnable() {
public void run() throws Exception {
fCurrentBlock.initialize(fStatusMonitor);
}
public void handleException(Throwable x) {
}