}
getShell().getDisplay().syncExec(new Runnable() {
public void run() {
// Query the current selection since we have
// been delayed
IContentProposal p = getSelectedProposal();
if (p != null) {
String description = p.getDescription();
if (description != null) {
if (infoPopup == null) {
infoPopup = new InfoPopupDialog(
getShell());
infoPopup.open();
infoPopup
.getShell()
.addDisposeListener(
new DisposeListener() {
public void widgetDisposed(
DisposeEvent event) {
infoPopup = null;
}
});
}
infoPopup.setContents(p
.getDescription());
} else if (infoPopup != null) {
infoPopup.close();
}
pendingDescriptionUpdate = false;