[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