protected ILaunchConfiguration chooseConfiguration(final List<ILaunchConfiguration> configList) {
final AtomicReference<ILaunchConfiguration> ret = new AtomicReference<ILaunchConfiguration>();
DisplayUtil.syncExec(new Runnable() {
@Override
public void run() {
IDebugModelPresentation labelProvider = null;
try {
labelProvider = DebugUITools.newDebugModelPresentation();
ElementListSelectionDialog dialog= new ElementListSelectionDialog(JDIDebugUIPlugin.getActiveWorkbenchShell(), labelProvider);
dialog.setElements(configList.toArray());
dialog.setTitle("Choose a Clojure launch configuration");
dialog.setMessage(LauncherMessages.JavaLaunchShortcut_2);
dialog.setMultipleSelection(false);
dialog.setAllowDuplicates(true);
int result = dialog.open();
if (result == Window.OK) {
ret.set((ILaunchConfiguration) dialog.getFirstResult());
}
} finally {
if (labelProvider != null) {
labelProvider.dispose();
}
}
}
});
return ret.get();