Author: akazakov
Date: 2010-10-06 07:12:49 -0400 (Wed, 06 Oct 2010)
New Revision: 25513
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/kb/test/FaceletsKbModelTest.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageProcessor.java
Log:
https://jira.jboss.org/browse/JBIDE-7261 fixed code assist for <ui:...> tags
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/kb/test/FaceletsKbModelTest.java
===================================================================
---
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/kb/test/FaceletsKbModelTest.java 2010-10-06
11:00:54 UTC (rev 25512)
+++
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/kb/test/FaceletsKbModelTest.java 2010-10-06
11:12:49 UTC (rev 25513)
@@ -169,7 +169,7 @@
query.setUri("http://jboss.com/products/seam/pdf");
query.setValue("ori");
- TextProposal[] proposals = PageProcessor.getInstance().getProposals(query, context);
+ TextProposal[] proposals = PageProcessor.getInstance().getProposals(query, context,
true);
for (TextProposal proposal : proposals) {
if("orientation".equals(proposal.getReplacementString())) {
return;
@@ -193,7 +193,7 @@
query.setUri("http://jboss.com/products/seam/mail");
query.setValue("pre");
- TextProposal[] proposals = PageProcessor.getInstance().getProposals(query, context);
+ TextProposal[] proposals = PageProcessor.getInstance().getProposals(query, context,
true);
for (TextProposal proposal : proposals) {
if("precedence".equals(proposal.getReplacementString())) {
return;
@@ -203,6 +203,48 @@
}
/**
+ *
https://jira.jboss.org/browse/JBIDE-7261
+ */
+ public void testFacelets() {
+ IFile file = testProject.getFile("WebContent/pages/inputUserName.xhtml");
+
+ ELContext context = PageContextFactory.createPageContext(file);
+ KbQuery query = new KbQuery();
+ query.setMask(true);
+ query.setOffset(310);
+ query.setType(Type.TAG_NAME);
+ query.setParentTags(new String[]{"html"});
+ query.setPrefix("ui");
+
query.setUri("http://java.sun.com/jsf/facelets");
+ query.setValue("ui:comp");
+
+ TextProposal[] proposals = PageProcessor.getInstance().getProposals(query, context,
true);
+ boolean found = false;
+ for (TextProposal proposal : proposals) {
+ if(proposal.getReplacementString().startsWith("<ui:composition")) {
+ found = true;
+ break;
+ }
+ }
+ assertTrue("Can't find <ui:composition> proposal.", found);
+
+ query.setOffset(322);
+ query.setType(Type.ATTRIBUTE_NAME);
+ query.setParentTags(new String[]{"html", "ui:composition"});
+ query.setPrefix("ui");
+
query.setUri("http://java.sun.com/jsf/facelets");
+ query.setValue("temp");
+
+ proposals = PageProcessor.getInstance().getProposals(query, context, true);
+ for (TextProposal proposal : proposals) {
+ if("template".equals(proposal.getReplacementString())) {
+ return;
+ }
+ }
+ fail("Can't find <ui:composition template=\"> proposal.");
+ }
+
+ /**
*
https://jira.jboss.org/jira/browse/JBIDE-3875
*/
public void testFacetNames() {
@@ -219,7 +261,7 @@
query.setParent("name");
query.setStringQuery("h");
- TextProposal[] proposals = PageProcessor.getInstance().getProposals(query, context);
+ TextProposal[] proposals = PageProcessor.getInstance().getProposals(query, context,
true);
for (TextProposal proposal : proposals) {
if("header".equals(proposal.getReplacementString())) {
return;
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageProcessor.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageProcessor.java 2010-10-06
11:00:54 UTC (rev 25512)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageProcessor.java 2010-10-06
11:12:49 UTC (rev 25513)
@@ -64,13 +64,18 @@
private List<TextProposal> excludeExtendedComponents(List<TextProposal>
proposals) {
Map<String, Set<TextProposal>> runtimeComponentMap = new HashMap<String,
Set<TextProposal>>();
Map<String, TextProposal> customComponentMap = new HashMap<String,
TextProposal>();
+ Set<TextProposal> customNotExtendedComponents = new
HashSet<TextProposal>();
for (TextProposal proposal : proposals) {
Object source = proposal.getSource();
if(source instanceof IComponent) {
IComponent component = (IComponent)source;
String name = component.getTagLib().getURI() + ":" + component.getName();
//$NON-NLS-1$
- if(source instanceof ICustomTagLibComponent) {
- customComponentMap.put(name, proposal);
+ if(component instanceof ICustomTagLibComponent) {
+ if(component.isExtended()) {
+ customComponentMap.put(name, proposal);
+ } else {
+ customNotExtendedComponents.add(proposal);
+ }
} else {
Set<TextProposal> textProposals = runtimeComponentMap.get(name);
if(textProposals==null) {
@@ -91,6 +96,9 @@
proposals.addAll(runtimeComponentMap.get(name));
}
}
+ if(!customNotExtendedComponents.isEmpty()) {
+ proposals.addAll(customNotExtendedComponents);
+ }
}
return proposals;
}