[richfaces-svn-commits] JBoss Rich Faces SVN: r2173 - in trunk/cdk/generator/src/main: java/org/ajax4jsf/templatecompiler/elements/std and 1 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu Aug 9 09:50:14 EDT 2007


Author: nbelaevski
Date: 2007-08-09 09:50:14 -0400 (Thu, 09 Aug 2007)
New Revision: 2173

Added:
   trunk/cdk/generator/src/main/java/org/ajax4jsf/templatecompiler/elements/std/ObjectTemplateElement.java
   trunk/cdk/generator/src/main/resources/META-INF/templates/templatecompiler/object.vm
Modified:
   trunk/cdk/generator/src/main/java/org/ajax4jsf/templatecompiler/elements/A4JRendererElementsFactory.java
Log:
c:object tag added

Modified: trunk/cdk/generator/src/main/java/org/ajax4jsf/templatecompiler/elements/A4JRendererElementsFactory.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/ajax4jsf/templatecompiler/elements/A4JRendererElementsFactory.java	2007-08-09 11:14:54 UTC (rev 2172)
+++ trunk/cdk/generator/src/main/java/org/ajax4jsf/templatecompiler/elements/A4JRendererElementsFactory.java	2007-08-09 13:50:14 UTC (rev 2173)
@@ -60,6 +60,9 @@
 		mapClasses
 				.put("c:set",
 						"org.ajax4jsf.templatecompiler.elements.std.SetTemplateElement");
+		mapClasses
+				.put("c:object",
+						"org.ajax4jsf.templatecompiler.elements.std.ObjectTemplateElement");
 		mapClasses.put("c:if",
 				"org.ajax4jsf.templatecompiler.elements.std.IFTemplateElement");
 		mapClasses

Added: trunk/cdk/generator/src/main/java/org/ajax4jsf/templatecompiler/elements/std/ObjectTemplateElement.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/ajax4jsf/templatecompiler/elements/std/ObjectTemplateElement.java	                        (rev 0)
+++ trunk/cdk/generator/src/main/java/org/ajax4jsf/templatecompiler/elements/std/ObjectTemplateElement.java	2007-08-09 13:50:14 UTC (rev 2173)
@@ -0,0 +1,108 @@
+/**
+ * License Agreement.
+ *
+ * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.ajax4jsf.templatecompiler.elements.std;
+
+import org.ajax4jsf.builder.generator.GeneratorException;
+import org.ajax4jsf.templatecompiler.builder.CompilationContext;
+import org.ajax4jsf.templatecompiler.builder.CompilationException;
+import org.ajax4jsf.templatecompiler.el.ELParser;
+import org.ajax4jsf.templatecompiler.elements.A4JRendererElementsFactory;
+import org.ajax4jsf.templatecompiler.elements.TemplateElementBase;
+import org.apache.tools.ant.BuildException;
+import org.apache.velocity.VelocityContext;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+/**
+ * Processing c:object
+ * 
+ * @author nbelaevski at exadel.com 
+ * 
+ */
+public class ObjectTemplateElement extends TemplateElementBase {
+
+	private static final String TEMPLATE = A4JRendererElementsFactory.TEMPLATES_TEMPLATECOMPILER_PATH+"/object.vm";
+
+	private String strThisVariable;
+
+	private String strExpression;
+
+	//added by Nick - 9/08/07
+	private String strType;
+	//by Nick
+	
+	public ObjectTemplateElement(final Node element,
+			final CompilationContext componentBean) {
+		super(element, componentBean);
+
+		String strTempExpression;
+
+		NamedNodeMap nnm = element.getAttributes();
+		String sVariableName = nnm.getNamedItem("var").getNodeValue();
+		Node value = nnm.getNamedItem("value");
+
+		Node type = nnm.getNamedItem("type");
+		if (type != null) {
+			this.strType = type.getNodeValue();
+		}
+		
+		if (value != null) {
+			strTempExpression = value.getNodeValue();
+		} else {
+			strTempExpression = element.getTextContent();
+		}
+
+		this.strThisVariable = sVariableName;
+
+		this.strExpression = ELParser.compileEL(strTempExpression, componentBean);
+
+		if (this.strType != null) {
+			try {
+				this.getComponentBean().addVariable(this.strThisVariable, this.strType);
+			} catch (CompilationException e) {
+				throw new RuntimeException(e.getMessage(), e);
+			}
+		}
+		
+	}
+
+	public String getBeginElement() throws CompilationException {
+		VelocityContext context = new VelocityContext();
+			context.put("variable", this.strThisVariable);
+			context.put("expression", this.strExpression);
+			context.put("type", this.strType);
+			
+			return this.getComponentBean().processTemplate(getTemplateName(), context);
+
+	}
+
+	/**
+	 * @return
+	 */
+	protected String getTemplateName() {
+		return TEMPLATE;
+	}
+
+	public String getEndElement() {
+		return null;
+	}
+}
\ No newline at end of file

Added: trunk/cdk/generator/src/main/resources/META-INF/templates/templatecompiler/object.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates/templatecompiler/object.vm	                        (rev 0)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates/templatecompiler/object.vm	2007-08-09 13:50:14 UTC (rev 2173)
@@ -0,0 +1 @@
+$type $variable = $expression;
\ No newline at end of file




More information about the richfaces-svn-commits mailing list