[jbosstools-commits] JBoss Tools SVN: r42417 - in trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb: include and 1 other directory.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Thu Jul 5 16:05:16 EDT 2012
Author: scabanovich
Date: 2012-07-05 16:05:15 -0400 (Thu, 05 Jul 2012)
New Revision: 42417
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/IncludeModel.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/PageInclude.java
Log:
JBIDE-3526
https://issues.jboss.org/browse/JBIDE-3526
ui:decorate, ui:composition.
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java 2012-07-05 19:53:28 UTC (rev 42416)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java 2012-07-05 20:05:15 UTC (rev 42417)
@@ -10,7 +10,6 @@
******************************************************************************/
package org.jboss.tools.jst.web.kb;
-import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
@@ -98,7 +97,6 @@
import org.jboss.tools.common.validation.ValidationELReference;
import org.jboss.tools.jst.web.WebUtils;
import org.jboss.tools.jst.web.kb.include.IncludeContextBuilder;
-import org.jboss.tools.jst.web.kb.include.IncludeModel;
import org.jboss.tools.jst.web.kb.include.PageInclude;
import org.jboss.tools.jst.web.kb.internal.FaceletPageContextImpl;
import org.jboss.tools.jst.web.kb.internal.JspContextImpl;
@@ -649,63 +647,77 @@
}
}
+ static String TAG_COMPOSITION = "composition"; //$NON-NLS-1$
+ static String TAG_DECORATE = "decorate"; //$NON-NLS-1$
+ static String ATTR_TEMPLATE = "template"; //$NON-NLS-1$
static String ATTR_SRC = "src"; //$NON-NLS-1$
static String NODE_PARAM = "param"; //$NON-NLS-1$
static String ATTR_NAME = "name"; //$NON-NLS-1$
static String ATTR_VALUE = "value"; //$NON-NLS-1$
+ static Map<String, String> PATH_ATTRIBUTES = new HashMap<String, String>();
+ static {
+ PATH_ATTRIBUTES.put(TAG_COMPOSITION, ATTR_TEMPLATE);
+ PATH_ATTRIBUTES.put(TAG_DECORATE, ATTR_TEMPLATE);
+ PATH_ATTRIBUTES.put(IncludeContextBuilder.TAG_INCLUDE, ATTR_SRC);
+ }
private static void fillUIParamsForNode(IDOMElement node, ELContextImpl context) {
- if(IncludeContextBuilder.TAG_INCLUDE.equals(node.getLocalName()) && CustomTagLibManager.FACELETS_UI_TAG_LIB_URI.equals(node.getNamespaceURI())) {
- String src = node.getAttribute(ATTR_SRC);
- if(src == null || src.trim().length() == 0) {
- return;
- }
- IFile includedFile = getFile(src, context.getResource());
- if(includedFile == null) return;
- NodeList list = node.getElementsByTagNameNS (CustomTagLibManager.FACELETS_UI_TAG_LIB_URI, NODE_PARAM);
- List<Var> vars = null;
- for (int i = 0; i < list.getLength(); i++) {
- Node n = list.item(i);
- if(n instanceof IDOMElement) {
- IDOMElement element = (IDOMElement)n;
- synchronized (element) {
- if(element.hasAttribute(ATTR_NAME)) {
- String var = element.getAttribute(ATTR_NAME);
- int declOffset = 0;
- int declLength = 0;
- Node varAttr = element.getAttributeNode(ATTR_NAME);
- if (varAttr instanceof IDOMAttr) {
- int varNameStart = ((IDOMAttr)varAttr).getNameRegionStartOffset();
- int varNameEnd = ((IDOMAttr)varAttr).getNameRegionEndOffset();
- declOffset = varNameStart;
- declLength = varNameEnd - varNameStart;
- }
- var = var.trim();
- if(!"".equals(var)) { //$NON-NLS-1$
- if(element.hasAttribute(ATTR_VALUE)) {
- String value = element.getAttribute(ATTR_VALUE);
- value = value.trim();
- Var newVar = new Var(ELParserUtil.getJbossFactory(), var, value, declOffset, declLength);
- if(newVar.getElToken()!=null) {
- if(vars == null) {
- vars = new ArrayList<Var>();
- }
- vars.add(newVar);
+ if(!CustomTagLibManager.FACELETS_UI_TAG_LIB_URI.equals(node.getNamespaceURI())) {
+ return;
+ }
+ String pathAttr = PATH_ATTRIBUTES.get(node.getLocalName());
+ if(pathAttr == null) {
+ return;
+ }
+ String src = node.getAttribute(pathAttr);
+ if(src == null || src.trim().length() == 0) {
+ return;
+ }
+ IFile includedFile = getFile(src, context.getResource());
+ if(includedFile == null) return;
+ NodeList list = node.getElementsByTagNameNS (CustomTagLibManager.FACELETS_UI_TAG_LIB_URI, NODE_PARAM);
+ List<Var> vars = null;
+ for (int i = 0; i < list.getLength(); i++) {
+ Node n = list.item(i);
+ if(n instanceof IDOMElement) {
+ IDOMElement element = (IDOMElement)n;
+ synchronized (element) {
+ if(element.hasAttribute(ATTR_NAME)) {
+ String var = element.getAttribute(ATTR_NAME);
+ int declOffset = 0;
+ int declLength = 0;
+ Node varAttr = element.getAttributeNode(ATTR_NAME);
+ if (varAttr instanceof IDOMAttr) {
+ int varNameStart = ((IDOMAttr)varAttr).getNameRegionStartOffset();
+ int varNameEnd = ((IDOMAttr)varAttr).getNameRegionEndOffset();
+ declOffset = varNameStart;
+ declLength = varNameEnd - varNameStart;
+ }
+ var = var.trim();
+ if(!"".equals(var)) { //$NON-NLS-1$
+ if(element.hasAttribute(ATTR_VALUE)) {
+ String value = element.getAttribute(ATTR_VALUE);
+ value = value.trim();
+ Var newVar = new Var(ELParserUtil.getJbossFactory(), var, value, declOffset, declLength);
+ if(newVar.getElToken()!=null) {
+ if(vars == null) {
+ vars = new ArrayList<Var>();
}
+ vars.add(newVar);
}
}
}
}
}
}
- if(vars != null && !vars.isEmpty()) {
- IKbProject kbProject = KbProjectFactory.getKbProject(context.getResource().getProject(), true);
- if(kbProject != null) {
- PageInclude include = new PageInclude(context.getResource().getFullPath(), includedFile.getFullPath(), vars);
- kbProject.getIncludeModel().addInclude(context.getResource().getFullPath(), include);
- }
+ }
+ if(vars != null && !vars.isEmpty()) {
+ IKbProject kbProject = KbProjectFactory.getKbProject(context.getResource().getProject(), true);
+ if(kbProject != null) {
+ PageInclude include = new PageInclude(context.getResource().getFullPath(), includedFile.getFullPath(), vars);
+ kbProject.getIncludeModel().addInclude(context.getResource().getFullPath(), include);
}
- }
+ }
}
public static IFile getFile(String fileName, IFile includeFile) {
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/IncludeModel.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/IncludeModel.java 2012-07-05 19:53:28 UTC (rev 42416)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/IncludeModel.java 2012-07-05 20:05:15 UTC (rev 42417)
@@ -90,7 +90,7 @@
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#store(org.w3c.dom.Element)
*/
- public void store(Element root) {
+ public synchronized void store(Element root) {
Map<String, String> pathAliases = loadAliases(root);
Element includes = XMLUtilities.createElement(root, STORE_ELEMENT_INCLUDES);
for (IPath path : directReferences.keySet()) {
@@ -127,7 +127,7 @@
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#load(org.w3c.dom.Element)
*/
- public void load(Element root) {
+ public synchronized void load(Element root) {
Map<String, String> pathAliases = loadAliases(root);
Element includes = XMLUtilities.getUniqueChild(root, STORE_ELEMENT_INCLUDES);
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/PageInclude.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/PageInclude.java 2012-07-05 19:53:28 UTC (rev 42416)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/include/PageInclude.java 2012-07-05 20:05:15 UTC (rev 42417)
@@ -16,6 +16,7 @@
import org.jboss.tools.common.el.core.resolver.Var;
/**
+ * Parameters defined within elements <ui:include>, <ui:composition>, <ui:decorate>
*
* @author Viacheslav Kabanovich
*
More information about the jbosstools-commits
mailing list