Author: scabanovich
Date: 2010-12-23 05:33:23 -0500 (Thu, 23 Dec 2010)
New Revision: 27708
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFPromptingProvider.java
Log:
JBIDE-7987
https://issues.jboss.org/browse/JBIDE-7987
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFPromptingProvider.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFPromptingProvider.java 2010-12-23
10:32:13 UTC (rev 27707)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFPromptingProvider.java 2010-12-23
10:33:23 UTC (rev 27708)
@@ -62,6 +62,7 @@
SUPPORTED_IDS.add(JSF_GET_TAGLIBS);
SUPPORTED_IDS.add(JSF_CONVERTER_IDS);
SUPPORTED_IDS.add(JSF_VALIDATOR_IDS);
+ SUPPORTED_IDS.add(JSF_FACES_CONFIG);
}
public final static String PROVIDER_ID = "jsf"; //$NON-NLS-1$
@@ -172,6 +173,12 @@
return new OpenConverterHelper().getConverterIDs(model);
} else if(JSF_VALIDATOR_IDS.equals(id)) {
return new OpenValidatorHelper().getValidatorIDs(model);
+ } else if(JSF_FACES_CONFIG.equals(id)) {
+ XModelObject fc = findFacesConfig(model);
+ if(fc == null) return EMPTY_LIST;
+ ArrayList<Object> list = new ArrayList<Object>();
+ list.add(fc);
+ return list;
}
if(error != null) throw new XModelException(error);
return EMPTY_LIST;
@@ -498,4 +505,34 @@
return (pattern == null) ? url : pattern.getJSFPath(url);
}
+ public static XModelObject findFacesConfig(XModel model) {
+ XModelObject facesConfig = null;
+ JSFProjectsRoot root = JSFProjectsTree.getProjectsRoot(model);
+ if (root != null) {
+ WebProjectNode n = (WebProjectNode) root
+ .getChildByPath(JSFProjectTreeConstants.CONFIGURATION);
+ if (n != null) {
+ /*
+ * The array contains the all configuration files in the project
+ * including files from jar archives.
+ * Only editable object is be the necessary faces-config file.
+ */
+ XModelObject[] os = n.getTreeChildren();
+ for (XModelObject o : os) {
+ if (o.isObjectEditable()) {
+ facesConfig = o;
+ break;
+ }
+ }
+ }
+ }
+ /*
+ * When nothing has been found try the last straight-forward way.
+ */
+ if (facesConfig == null) {
+ facesConfig = model.getByPath("/faces-config.xml"); //$NON-NLS-1$
+ }
+ return facesConfig;
+ }
+
}