- fire events on IInterpreterInstall extension changes
- rebuild projects if IInterpreterInstall global variables are changed
diff --git a/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/AbstractInterpreterInstall.java b/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/AbstractInterpreterInstall.java
index 0c2789f..68e469e 100644
--- a/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/AbstractInterpreterInstall.java
+++ b/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/AbstractInterpreterInstall.java
@@ -357,11 +357,18 @@
} else {
i.remove();
}
+ firePropertyChangeEvent(new PropertyChangeEvent(this,
+ IInterpreterInstallChangedListener.PROPERTY_EXTENSIONS,
+ Collections.singletonList(object),
+ value != null ? Collections.singletonList(value) : null));
return object;
}
}
if (value != null) {
resource.getContents().add(value);
+ firePropertyChangeEvent(new PropertyChangeEvent(this,
+ IInterpreterInstallChangedListener.PROPERTY_EXTENSIONS,
+ null, Collections.singletonList(value)));
}
return null;
}
@@ -389,12 +396,18 @@
}
public void setExtensions(List<EObject> value) {
+ final List<EObject> oldValue;
if (resource == null) {
resource = createResource();
+ oldValue = null;
} else {
+ oldValue = new ArrayList<EObject>(resource.getContents());
resource.getContents().clear();
}
resource.getContents().addAll(value);
+ firePropertyChangeEvent(new PropertyChangeEvent(this,
+ IInterpreterInstallChangedListener.PROPERTY_EXTENSIONS,
+ oldValue, value));
}
public String saveExtensions() {
diff --git a/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/IInterpreterInstallChangedListener.java b/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/IInterpreterInstallChangedListener.java
index e7dbedb..f63e12a 100644
--- a/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/IInterpreterInstallChangedListener.java
+++ b/core/plugins/org.eclipse.dltk.launching/src/org/eclipse/dltk/launching/IInterpreterInstallChangedListener.java
@@ -61,6 +61,14 @@
+ ".PROPERTY_Interpreter_ARGUMENTS"; //$NON-NLS-1$
/**
+ * Property constant indicating the install location of a Interpreter
+ * install has changed.
+ */
+ public static final String PROPERTY_EXTENSIONS = DLTKLaunchingPlugin
+ .getUniqueIdentifier()
+ + ".PROPERTY_EXTENSIONS"; //$NON-NLS-1$
+
+ /**
* Notification that the default interpreter install has changed.
*
* @param previous