[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