* initialization fixes
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/AbstractInterpreterLibraryBlock.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/AbstractInterpreterLibraryBlock.java
index 038191e..f545c31 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/AbstractInterpreterLibraryBlock.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/AbstractInterpreterLibraryBlock.java
@@ -11,9 +11,11 @@
import java.io.File;
+import java.lang.reflect.InvocationTargetException;
import java.util.Iterator;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
@@ -24,6 +26,8 @@
import org.eclipse.dltk.launching.LibraryLocation;
import org.eclipse.dltk.launching.ScriptRuntime;
import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -132,20 +136,35 @@
return comp;
}
-
+
/**
* The "default" button has been toggled
*/
public void restoreDefaultLibraries() {
- LibraryLocation[] libs = null;
- File installLocation = getHomeDirectory();
+ final LibraryLocation[][] libs = new LibraryLocation[][] { null};
+ final File installLocation = getHomeDirectory();
if (installLocation == null) {
- libs = new LibraryLocation[0];
+ libs[0] = new LibraryLocation[0];
} else {
- libs = getInterpreterInstallType().getDefaultLibraryLocations(installLocation);
+ ProgressMonitorDialog dialog = new ProgressMonitorDialog(null);
+ try {
+ dialog.run(false, false, new IRunnableWithProgress() {
+
+ public void run(IProgressMonitor monitor)
+ throws InvocationTargetException, InterruptedException {
+ libs[0] = getInterpreterInstallType().getDefaultLibraryLocations(installLocation);
+ }
+
+ });
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
}
if (libs != null)
- fLibraryContentProvider.setLibraries(libs);
+ fLibraryContentProvider.setLibraries(libs[0]);
update();
}
/**