Author: scabanovich
Date: 2009-08-17 08:59:36 -0400 (Mon, 17 Aug 2009)
New Revision: 17108
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/drop/treeviewer/model/AttributeValueResourceFactory.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/ValueHelper.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-1826
Some standard proposals types should be added automatically rather than be described in
custom schemas.
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/drop/treeviewer/model/AttributeValueResourceFactory.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/drop/treeviewer/model/AttributeValueResourceFactory.java 2009-08-17
11:29:48 UTC (rev 17107)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/drop/treeviewer/model/AttributeValueResourceFactory.java 2009-08-17
12:59:36 UTC (rev 17108)
@@ -31,13 +31,13 @@
static String FACELETS_JSFC_TYPE = CustomProposalTypeFactory.FACELETS_JSFC_TYPE;
static String TAGLIB_TYPE = CustomProposalTypeFactory.NAME_SPACE_TYPE;
static String ID_TYPE = CustomProposalTypeFactory.ID_TYPE;
- static String BUNDLE_PROPERTY_TYPE = "bundleProperty"; //$NON-NLS-1$
- static String BEAN_PROPERTY_TYPE = "beanProperty"; //$NON-NLS-1$
- static String BEAN_METHOD_BY_SYGNATURE_TYPE = "beanMethodBySignature";
//$NON-NLS-1$
- static String JSP_PATH_TYPE = "jspPath"; //$NON-NLS-1$
- static String JSF_VARIABLES_TYPE = "jsfVariables"; //$NON-NLS-1$
- static String MANAGED_BEAN_NAME_TYPE = "managedBeanName"; //$NON-NLS-1$
- static String JSF_ID = "jsfID"; //$NON-NLS-1$
+ public static String BUNDLE_PROPERTY_TYPE = "bundleProperty"; //$NON-NLS-1$
+ public static String BEAN_PROPERTY_TYPE = "beanProperty"; //$NON-NLS-1$
+ public static String BEAN_METHOD_BY_SYGNATURE_TYPE = "beanMethodBySignature";
//$NON-NLS-1$
+ public static String JSP_PATH_TYPE = "jspPath"; //$NON-NLS-1$
+ public static String JSF_VARIABLES_TYPE = "jsfVariables"; //$NON-NLS-1$
+ public static String MANAGED_BEAN_NAME_TYPE = "managedBeanName";
//$NON-NLS-1$
+ public static String JSF_ID = "jsfID"; //$NON-NLS-1$
private static AttributeValueResourceFactory INSTANCE = new
AttributeValueResourceFactory();
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/ValueHelper.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/ValueHelper.java 2009-08-17
11:29:48 UTC (rev 17107)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/outline/ValueHelper.java 2009-08-17
12:59:36 UTC (rev 17108)
@@ -12,10 +12,14 @@
import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Properties;
+import java.util.Set;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.ui.IEditorInput;
@@ -42,6 +46,7 @@
import org.jboss.tools.jst.web.kb.PageProcessor;
import org.jboss.tools.jst.web.kb.internal.taglib.CustomProposalType;
import org.jboss.tools.jst.web.kb.internal.taglib.CustomTagLibAttribute;
+import org.jboss.tools.jst.web.kb.internal.taglib.ExtendedProposalType;
import org.jboss.tools.jst.web.kb.taglib.IAttribute;
import org.jboss.tools.jst.web.tld.TaglibData;
import org.jboss.tools.jst.web.tld.VpeTaglibManager;
@@ -120,19 +125,45 @@
public ModelElement getInitalInput(IPageContext pageContext, KbQuery kbQuery) {
IAttribute[] as = PageProcessor.getInstance().getAttributes(kbQuery, pageContext);
if(as == null || as.length == 0) return new RootElement("root", new
ArrayList<AttributeValueResource>()); //$NON-NLS-1$
- CustomTagLibAttribute ca = null;
+ List<CustomProposalType> proposals = new
ArrayList<CustomProposalType>();
+ Set<String> proposalTypes = new HashSet<String>();
for (IAttribute a: as) {
if(a instanceof CustomTagLibAttribute) {
- ca = (CustomTagLibAttribute)a;
- break;
+ CustomTagLibAttribute ca = (CustomTagLibAttribute)a;
+ CustomProposalType[] ps = ca.getProposals();
+ for (CustomProposalType p: ps) {
+ String n = p.getType();
+ if(n == null || proposalTypes.contains(n)) continue;
+ proposalTypes.add(n);
+ proposals.add(p);
+ }
}
}
- CustomProposalType[] proposals = ca != null ? ca.getProposals() : new
CustomProposalType[0];
+ boolean hasJSFNature = false;
+ IProject project = pageContext.getResource().getProject();
+ try {
+ if(project != null && project.isAccessible()) hasJSFNature =
project.hasNature("org.jboss.tools.jsf.jsfnature");
+ } catch (CoreException e) {
+ //ignore
+ }
+ String[] TYPES = {AttributeValueResourceFactory.BEAN_PROPERTY_TYPE,
+ AttributeValueResourceFactory.BUNDLE_PROPERTY_TYPE,
+ AttributeValueResourceFactory.JSF_VARIABLES_TYPE,
+ AttributeValueResourceFactory.BEAN_METHOD_BY_SYGNATURE_TYPE};
+ if(hasJSFNature) {
+ for (String type : TYPES) {
+ if(proposalTypes.contains(type)) continue;
+ ExtendedProposalType pt = new ExtendedProposalType();
+ pt.setType(type);
+ proposals.add(pt);
+ }
+ }
+
List<AttributeValueResource> elements = new
ArrayList<AttributeValueResource>();
ModelElement root = new RootElement("root", elements); //$NON-NLS-1$
- for (int i = 0; i < proposals.length; i++) {
- AttributeValueResource resource =
AttributeValueResourceFactory.getInstance().createResource(getEditorInput(), pageContext,
root, proposals[i], proposals[i].getType(), kbQuery);
- resource.setParams(proposals[i].getParams());
+ for (CustomProposalType p: proposals) {
+ AttributeValueResource resource =
AttributeValueResourceFactory.getInstance().createResource(getEditorInput(), pageContext,
root, p, p.getType(), kbQuery);
+ resource.setParams(p.getParams());
resource.setQuery(kbQuery, this);
elements.add(resource);
}