[209096] Initial preset not being set correctly in new faceted pro...
[209098] Regression in error messages displayed on new faceted pro...
[211474] Programmatically created dynamic Web project has null con...
[211717] server runtime created via the modify facet configuration...
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 f9c949b..914cbac 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,7 +47,6 @@
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 {
@@ -108,6 +107,18 @@
},
IFacetedProjectEvent.Type.PROJECT_FACETS_CHANGED
);
+
+ fpjwc.addListener
+ (
+ new IFacetedProjectListener()
+ {
+ public void handleEvent( final IFacetedProjectEvent event )
+ {
+ model.notifyPropertyChange(FACET_RUNTIME, IDataModel.VALID_VALUES_CHG);
+ }
+ },
+ IFacetedProjectEvent.Type.TARGETABLE_RUNTIMES_CHANGED
+ );
IDataModel projectDataModel = DataModelFactory.createDataModel(new ProjectCreationDataModelProviderNew());
projectDataModel.addListener(new IDataModelListener() {
@@ -315,9 +326,7 @@
for( IProjectFacet facet : fixedFacets )
{
- final IFacetedProject.Action action
- = fpjwc.getProjectFacetAction( IFacetedProject.Action.Type.INSTALL, facet );
-
+ final IFacetedProject.Action action = fpjwc.getProjectFacetAction( facet );
facetDmMap.add( (IDataModel) action.getConfig() );
}
}
@@ -355,30 +364,15 @@
}
public DataModelPropertyDescriptor[] getValidPropertyDescriptors(String propertyName) {
- if (FACET_RUNTIME.equals(propertyName)) {
- Collection projectFacets = (Collection)getProperty(REQUIRED_FACETS_COLLECTION);
- Set runtimes = RuntimeManager.getRuntimes();
- ArrayList list = new ArrayList();
+ if (FACET_RUNTIME.equals(propertyName))
+ {
+ final IFacetedProjectWorkingCopy fpjwc
+ = (IFacetedProjectWorkingCopy) this.model.getProperty( FACETED_PROJECT_WORKING_COPY );
+
+ final Set<IRuntime> targetableRuntimes = fpjwc.getTargetableRuntimes();
- for (Iterator it = runtimes.iterator(); it.hasNext();) {
- IRuntime rt = (IRuntime) it.next();
-
- // add this runtime in the list only if it supports all of the required facets
- boolean supportsFactet = true;
- for (Iterator facetIt = projectFacets.iterator(); facetIt.hasNext();) {
- IProjectFacet facet = (IProjectFacet) facetIt.next();
- if (!rt.supports(facet)) {
- supportsFactet = false;
- break;
- }
- }
- if (supportsFactet) {
- list.add(rt);
- }
- }
-
- DataModelPropertyDescriptor[] descriptors = new DataModelPropertyDescriptor[list.size() + 1];
- Iterator iterator = list.iterator();
+ DataModelPropertyDescriptor[] descriptors = new DataModelPropertyDescriptor[targetableRuntimes.size() + 1];
+ Iterator iterator = targetableRuntimes.iterator();
for (int i = 0; i < descriptors.length - 1; i++) {
IRuntime runtime = (IRuntime) iterator.next();
descriptors[i] = new DataModelPropertyDescriptor(runtime, runtime.getLocalizedName());
@@ -399,11 +393,21 @@
return super.getValidPropertyDescriptors(propertyName);
}
- public IStatus validate(String propertyName) {
- if (FACET_PROJECT_NAME.equals(propertyName)) {
+ public IStatus validate(String propertyName)
+ {
+ if (FACET_PROJECT_NAME.equals(propertyName))
+ {
IDataModel projModel = model.getNestedModel(NESTED_PROJECT_DM);
return projModel.validateProperty(IProjectCreationPropertiesNew.PROJECT_NAME);
}
+ else if( propertyName.equals( FACETED_PROJECT_WORKING_COPY ) )
+ {
+ final IFacetedProjectWorkingCopy fpjwc
+ = (IFacetedProjectWorkingCopy) this.model.getProperty( FACETED_PROJECT_WORKING_COPY );
+
+ return fpjwc.validate();
+ }
+
return super.validate(propertyName);
}