[213005] can't use a new targeted runtime in the WebProject creati...
[214375] Facet runtime filtered on initial 1st page dropdown
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizardPage.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizardPage.java
index ec057a4..bcbfdef 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizardPage.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelWizardPage.java
@@ -23,6 +23,7 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.ui.PlatformUI;
import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
@@ -423,18 +424,27 @@
* @see org.eclipse.wst.common.frameworks.internal.operation.WTPOperationDataModelListener#propertyChanged(java.lang.String,
* java.lang.Object, java.lang.Object)
*/
- public void propertyChanged(DataModelEvent event) {
+ public void propertyChanged(final DataModelEvent event) {
DataModelWizard w = getDataModelWizard();
- if(w == null || !w.isExecuting()){
- String propertyName = event.getPropertyName();
- if (validationPropertyNames != null && (event.getFlag() == DataModelEvent.VALUE_CHG || (!isPageComplete() && event.getFlag() == DataModelEvent.VALID_VALUES_CHG))) {
- for (int i = 0; i < validationPropertyNames.length; i++) {
- if (validationPropertyNames[i].equals(propertyName)) {
- validatePage(showValidationErrorsOnEnter());
- break;
- }
- }
- }
+ if(w == null || !w.isExecuting())
+ {
+ final Runnable uiChanges = new Runnable()
+ {
+ public void run()
+ {
+ String propertyName = event.getPropertyName();
+ if (validationPropertyNames != null && (event.getFlag() == DataModelEvent.VALUE_CHG || (!isPageComplete() && event.getFlag() == DataModelEvent.VALID_VALUES_CHG))) {
+ for (int i = 0; i < validationPropertyNames.length; i++) {
+ if (validationPropertyNames[i].equals(propertyName)) {
+ validatePage(showValidationErrorsOnEnter());
+ break;
+ }
+ }
+ }
+ }
+ };
+
+ Display.getDefault().syncExec(uiChanges);
}
}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
index 914cbac..de11b89 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/datamodel/FacetProjectCreationDataModelProvider.java
@@ -47,6 +47,7 @@
import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
+import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
public class FacetProjectCreationDataModelProvider extends AbstractDataModelProvider implements IFacetProjectCreationDataModelProperties {
@@ -117,7 +118,7 @@
model.notifyPropertyChange(FACET_RUNTIME, IDataModel.VALID_VALUES_CHG);
}
},
- IFacetedProjectEvent.Type.TARGETABLE_RUNTIMES_CHANGED
+ IFacetedProjectEvent.Type.AVAILABLE_RUNTIMES_CHANGED
);
IDataModel projectDataModel = DataModelFactory.createDataModel(new ProjectCreationDataModelProviderNew());
@@ -369,10 +370,32 @@
final IFacetedProjectWorkingCopy fpjwc
= (IFacetedProjectWorkingCopy) this.model.getProperty( FACETED_PROJECT_WORKING_COPY );
- final Set<IRuntime> targetableRuntimes = fpjwc.getTargetableRuntimes();
+ final Set<IProjectFacet> fixedFacets = fpjwc.getFixedProjectFacets();
+ final ArrayList list = new ArrayList();
- DataModelPropertyDescriptor[] descriptors = new DataModelPropertyDescriptor[targetableRuntimes.size() + 1];
- Iterator iterator = targetableRuntimes.iterator();
+ for( IRuntime rt : RuntimeManager.getRuntimes() )
+ {
+ // add this runtime in the list only if it supports all of the required facets
+
+ boolean supports = true;
+
+ for( IProjectFacet facet : fixedFacets )
+ {
+ if( ! rt.supports( facet ) )
+ {
+ supports = false;
+ break;
+ }
+ }
+
+ if( supports )
+ {
+ list.add(rt);
+ }
+ }
+
+ DataModelPropertyDescriptor[] descriptors = new DataModelPropertyDescriptor[list.size() + 1];
+ Iterator iterator = list.iterator();
for (int i = 0; i < descriptors.length - 1; i++) {
IRuntime runtime = (IRuntime) iterator.next();
descriptors[i] = new DataModelPropertyDescriptor(runtime, runtime.getLocalizedName());