JBoss Rich Faces SVN: r1309 - trunk/sandbox/panelmenu.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-06-25 14:41:43 -0400 (Mon, 25 Jun 2007)
New Revision: 1309
Modified:
trunk/sandbox/panelmenu/pom.xml
Log:
Version declaration fixed
Modified: trunk/sandbox/panelmenu/pom.xml
===================================================================
--- trunk/sandbox/panelmenu/pom.xml 2007-06-25 18:26:59 UTC (rev 1308)
+++ trunk/sandbox/panelmenu/pom.xml 2007-06-25 18:41:43 UTC (rev 1309)
@@ -1,8 +1,8 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
- <artifactId>sandbox-parent</artifactId>
+ <artifactId>richfaces-parent</artifactId>
<groupId>org.richfaces</groupId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>3.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.richfaces</groupId>
16 years, 11 months
JBoss Rich Faces SVN: r1308 - trunk/sandbox-samples/scrollable-grid-demo/src/main/webapp/WEB-INF/lib.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-06-25 14:26:59 -0400 (Mon, 25 Jun 2007)
New Revision: 1308
Added:
trunk/sandbox-samples/scrollable-grid-demo/src/main/webapp/WEB-INF/lib/ajax4jsf-1.1.2-SNAPSHOT.jar
Log:
patched ajax4jsf
Added: trunk/sandbox-samples/scrollable-grid-demo/src/main/webapp/WEB-INF/lib/ajax4jsf-1.1.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox-samples/scrollable-grid-demo/src/main/webapp/WEB-INF/lib/ajax4jsf-1.1.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
16 years, 11 months
JBoss Rich Faces SVN: r1307 - in trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters: utils and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-06-25 14:26:09 -0400 (Mon, 25 Jun 2007)
New Revision: 1307
Modified:
trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/JiraUserConverter.java
trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/PriorityConverter.java
trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/StatusConverter.java
trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/utils/ConverterUtils.java
Log:
add ERROR types
Modified: trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/JiraUserConverter.java
===================================================================
--- trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/JiraUserConverter.java 2007-06-25 18:25:50 UTC (rev 1306)
+++ trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/JiraUserConverter.java 2007-06-25 18:26:09 UTC (rev 1307)
@@ -29,7 +29,7 @@
private boolean transientFlag;
-
+
public JiraUserConverter() {
transientFlag = false;
}
@@ -40,7 +40,7 @@
JiraUser user = findUser(value);
// System.out.println("JiraUserConverter.getAsObject()");
if( user == null){
- FacesMessage errorMessage = ConverterUtils.createTypeErrorMessage(value,"real jira username");
+ FacesMessage errorMessage = ConverterUtils.createTypeErrorMessage(value,null,ConverterUtils.ERROR_2);
throw new ConverterException(errorMessage);
}
return user;
@@ -53,9 +53,8 @@
if(value instanceof JiraUser){
jiraUser = (JiraUser)value;
-// System.out.println("JiraUserConverter.getAsString()");
}else{
- FacesMessage errorMessage = ConverterUtils.createTypeErrorMessage(value.getClass().getName(), JiraUser.class.getName());
+ FacesMessage errorMessage = ConverterUtils.createTypeErrorMessage(value.getClass().getName(), JiraUser.class.getName(),ConverterUtils.ERROR_1);
throw new ConverterException(errorMessage);
}
@@ -106,6 +105,8 @@
}
}
+
+
return null;
}
Modified: trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/PriorityConverter.java
===================================================================
--- trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/PriorityConverter.java 2007-06-25 18:25:50 UTC (rev 1306)
+++ trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/PriorityConverter.java 2007-06-25 18:26:09 UTC (rev 1307)
@@ -89,7 +89,7 @@
if(value instanceof Priority){
priority = (Priority)value;
}else{
- FacesMessage errorMessage = ConverterUtils.createTypeErrorMessage(value.getClass().getName(), Priority.class.getName());
+ FacesMessage errorMessage = ConverterUtils.createTypeErrorMessage(value.getClass().getName(), Priority.class.getName(),ConverterUtils.ERROR_1);
throw new ConverterException(errorMessage);
}
Modified: trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/StatusConverter.java
===================================================================
--- trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/StatusConverter.java 2007-06-25 18:25:50 UTC (rev 1306)
+++ trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/StatusConverter.java 2007-06-25 18:26:09 UTC (rev 1307)
@@ -85,7 +85,7 @@
if(value instanceof Status){
status = (Status)value;
}else{
- FacesMessage errorMessage = ConverterUtils.createTypeErrorMessage(value.getClass().getName(), Status.class.getName());
+ FacesMessage errorMessage = ConverterUtils.createTypeErrorMessage(value.getClass().getName(), Status.class.getName(),ConverterUtils.ERROR_1);
throw new ConverterException(errorMessage);
}
Modified: trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/utils/ConverterUtils.java
===================================================================
--- trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/utils/ConverterUtils.java 2007-06-25 18:25:50 UTC (rev 1306)
+++ trunk/sandbox-samples/scrollable-grid-demo/src/main/java/org/richfaces/demo/converters/utils/ConverterUtils.java 2007-06-25 18:26:09 UTC (rev 1307)
@@ -4,12 +4,27 @@
public class ConverterUtils {
- private static final String CONVERSATION_ERROR = "Conversation error: expected ";
+ private static final String CONVERSATION_ERROR = "Conversation error: ";
+
+ public static final int ERROR_1 = 0;
+
+ public static final int ERROR_2 = 1;
- public static FacesMessage createTypeErrorMessage(String received, String expected ){
- String summary = CONVERSATION_ERROR + expected + "found " + received;
+ public static FacesMessage createTypeErrorMessage(String received, String expected, int type){
+ String summary = null;
+
+ switch (type) {
+ case ERROR_1:
+ summary = CONVERSATION_ERROR + " found " + expected + " found " + received;
+ break;
+ case ERROR_2:
+ summary = CONVERSATION_ERROR + " found " + received;
+ break;
+ }
+
+
FacesMessage errorMessage = new FacesMessage();
errorMessage.setSeverity(FacesMessage.SEVERITY_ERROR);
errorMessage.setSummary(summary);
16 years, 11 months
JBoss Rich Faces SVN: r1306 - trunk/sandbox-samples/scrollable-grid-demo/src/main/webapp/pages.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-06-25 14:25:50 -0400 (Mon, 25 Jun 2007)
New Revision: 1306
Modified:
trunk/sandbox-samples/scrollable-grid-demo/src/main/webapp/pages/scrollable-grid.xhtml
Log:
Modified: trunk/sandbox-samples/scrollable-grid-demo/src/main/webapp/pages/scrollable-grid.xhtml
===================================================================
--- trunk/sandbox-samples/scrollable-grid-demo/src/main/webapp/pages/scrollable-grid.xhtml 2007-06-25 17:45:18 UTC (rev 1305)
+++ trunk/sandbox-samples/scrollable-grid-demo/src/main/webapp/pages/scrollable-grid.xhtml 2007-06-25 18:25:50 UTC (rev 1306)
@@ -165,7 +165,6 @@
</f:facet>
</sg:column>
-
</sg:scrollable-grid>
<h:commandButton value="submit"></h:commandButton>
<h:messages showDetail="true"/>
16 years, 11 months
JBoss Rich Faces SVN: r1305 - trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid.
by richfaces-svn-commits@lists.jboss.org
Author: dmorozov
Date: 2007-06-25 13:45:18 -0400 (Mon, 25 Jun 2007)
New Revision: 1305
Modified:
trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/Selection.js
Log:
fix script error while onselect action
Modified: trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/Selection.js
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/Selection.js 2007-06-25 16:53:45 UTC (rev 1304)
+++ trunk/sandbox/scrollable-grid/src/main/javascript/ClientUI/controls/grid/Selection.js 2007-06-25 17:45:18 UTC (rev 1305)
@@ -440,7 +440,7 @@
var state = this.selection.getState();
event.oldSelection = this.oldState;
event.newSelection = state;
- this.onselectionchange(event);
+ if(this.onselectionchange) this.onselectionchange(event);
this.oldState = state;
},
16 years, 11 months
JBoss Rich Faces SVN: r1304 - trunk/richfaces/common/src/main/java/org/richfaces/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-06-25 12:53:45 -0400 (Mon, 25 Jun 2007)
New Revision: 1304
Removed:
trunk/richfaces/common/src/main/java/org/richfaces/renderkit/TemplateUtil.java
Log:
TemplateUtil removed
Deleted: trunk/richfaces/common/src/main/java/org/richfaces/renderkit/TemplateUtil.java
===================================================================
--- trunk/richfaces/common/src/main/java/org/richfaces/renderkit/TemplateUtil.java 2007-06-25 16:48:09 UTC (rev 1303)
+++ trunk/richfaces/common/src/main/java/org/richfaces/renderkit/TemplateUtil.java 2007-06-25 16:53:45 UTC (rev 1304)
@@ -1,167 +0,0 @@
-/**
- * License Agreement.
- *
- * JBoss RichFaces 3.0 - Ajax4jsf Component Library
- *
- * 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.richfaces.renderkit;
-
-import java.io.IOException;
-
-import org.richfaces.org.apache.commons.lang.StringEscapeUtils;
-
-/**
- * @author Nick Belaevski - nbelaevski(a)exadel.com
- * created 11.12.2006
- *
- */
-public class TemplateUtil {
-
- public static interface MacroTemplateHandler {
- public String handle(String body);
- };
-
- private StringBuffer definitionBuffer = new StringBuffer();
- private StringBuffer result = new StringBuffer();
-
- private int macroDefDepth = 0;
- private boolean escapeCharOccured = false;
- private MacroTemplateHandler templateHandler;
- private boolean macroDefined = false;
-
- public TemplateUtil(MacroTemplateHandler templateHandler) {
- super();
- this.templateHandler = templateHandler;
- }
-
- private Boolean literalMode = null;
-
- private void doWriteChar(char c) throws IOException {
- if (macroDefDepth == 0) {
- if (literalMode == null) {
- result.append('\'');
- literalMode = Boolean.TRUE;
- } else if (Boolean.FALSE.equals(literalMode)) {
- result.append(" + \'");
- literalMode = Boolean.TRUE;
- }
-
- if (escapeCharOccured) {
- result.append("\\\\");
- }
-
- result.append(StringEscapeUtils.escapeJavaScript(String.valueOf(c)));
- } else {
- if (escapeCharOccured) {
- definitionBuffer.append('\\');
- }
-
- definitionBuffer.append(c);
- }
- }
-
- /* (non-Javadoc)
- * @see java.io.Writer#write(char[], int, int)
- */
- public TemplateUtil append(String string) throws IOException {
- char[] cbuf = string.toCharArray();
- for (int i = 0; i < cbuf.length; i++) {
- char c = cbuf[i];
-
- if (c == '{') {
- if (escapeCharOccured) {
- escapeCharOccured = false;
- doWriteChar(c);
- } else {
- if (macroDefDepth++ != 0) {
- doWriteChar(c);
- }
- }
- } else if (c == '}') {
- if (escapeCharOccured) {
- if (macroDefDepth == 0) {
- doWriteChar(c);
- escapeCharOccured = false;
- } else {
- escapeCharOccured = false;
- doWriteChar(c);
- }
- } else {
- if (macroDefDepth > 0 && --macroDefDepth == 0) {
- if (Boolean.TRUE.equals(literalMode)) {
- result.append('\'');
- }
-
- if (literalMode != null) {
- result.append(" + ");
- }
-
- literalMode = Boolean.FALSE;
-
- macroDefined = true;
- result.append(templateHandler.handle(definitionBuffer.toString()));
- definitionBuffer = new StringBuffer();
- } else {
- doWriteChar(c);
- }
- }
- } else {
- if (c == '\\') {
- if (escapeCharOccured) {
- escapeCharOccured = false;
- doWriteChar(c);
- }
-
- escapeCharOccured = true;
- } else {
- doWriteChar(c);
- escapeCharOccured = false;
- }
- }
- }
-
- return this;
- }
-
- public String getResult() throws IOException {
- boolean tmpEscapeCharOccured = escapeCharOccured;
- escapeCharOccured = false;
-
- if (macroDefDepth > 0) {
- macroDefDepth = 0;
- doWriteChar('{');
- result.append(StringEscapeUtils.escapeJavaScript(definitionBuffer.toString()));
- }
-
- if (tmpEscapeCharOccured) {
- doWriteChar('\\');
- }
-
- if (Boolean.TRUE.equals(literalMode)) {
- result.append('\'');
- }
-
- literalMode = null;
-
- return result.toString();
- }
-
- public boolean isMacroDefined() {
- return macroDefined;
- }
-}
16 years, 11 months
JBoss Rich Faces SVN: r1303 - in trunk: richfaces/common/src/main/antlr and 10 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-06-25 12:48:09 -0400 (Mon, 25 Jun 2007)
New Revision: 1303
Added:
trunk/richfaces/common/src/main/java/org/richfaces/renderkit/Expression.java
trunk/richfaces/common/src/main/java/org/richfaces/renderkit/MacroDefinitionJSContentHandler.java
trunk/richfaces/common/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java
Removed:
trunk/richfaces/common/src/main/java/org/richfaces/renderkit/ExpressionHolder.java
Modified:
trunk/richfaces/common/pom.xml
trunk/richfaces/common/src/main/antlr/RichMacroDefinition.g
trunk/richfaces/common/src/main/java/org/richfaces/json/JSContentHandler.java
trunk/richfaces/common/src/main/resources/org/richfaces/renderkit/html/scripts/json/json-dom.js
trunk/richfaces/common/src/main/resources/org/richfaces/renderkit/html/scripts/utils.js
trunk/richfaces/common/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java
trunk/richfaces/drag-drop/src/main/java/org/richfaces/renderkit/DragIndicatorRendererBase.java
trunk/richfaces/drag-drop/src/main/resources/org/richfaces/renderkit/html/scripts/drag-indicator.js
trunk/richfaces/drag-drop/src/main/templates/org/richfaces/htmlDragIndicator.jspx
trunk/sandbox/calendar/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java
trunk/sandbox/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx
Log:
New-style template engine support implementation
Modified: trunk/richfaces/common/pom.xml
===================================================================
--- trunk/richfaces/common/pom.xml 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/richfaces/common/pom.xml 2007-06-25 16:48:09 UTC (rev 1303)
@@ -8,13 +8,6 @@
<groupId>org.richfaces</groupId>
<artifactId>common</artifactId>
<name>common classes</name>
- <dependencies>
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr</artifactId>
- <version>3.0</version>
- </dependency>
- </dependencies>
<build>
<plugins>
<plugin>
Modified: trunk/richfaces/common/src/main/antlr/RichMacroDefinition.g
===================================================================
--- trunk/richfaces/common/src/main/antlr/RichMacroDefinition.g 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/richfaces/common/src/main/antlr/RichMacroDefinition.g 2007-06-25 16:48:09 UTC (rev 1303)
@@ -39,7 +39,7 @@
expression returns [List result] @init { $result = new ArrayList(); }:
(m = macrodef
- {$result.add(new org.richfaces.renderkit.ExpressionHolder(
+ {$result.add(new org.richfaces.renderkit.Expression(
unescape(stripBraces($m.text))));}
| t = text
Modified: trunk/richfaces/common/src/main/java/org/richfaces/json/JSContentHandler.java
===================================================================
--- trunk/richfaces/common/src/main/java/org/richfaces/json/JSContentHandler.java 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/richfaces/common/src/main/java/org/richfaces/json/JSContentHandler.java 2007-06-25 16:48:09 UTC (rev 1303)
@@ -606,4 +606,8 @@
protected boolean isProcessingCdata() {
return processing_cdata;
}
+
+ protected boolean isBeforeDocumentStart() {
+ return beforeDocumentStart;
+ }
}
Copied: trunk/richfaces/common/src/main/java/org/richfaces/renderkit/Expression.java (from rev 1246, trunk/richfaces/common/src/main/java/org/richfaces/renderkit/ExpressionHolder.java)
===================================================================
--- trunk/richfaces/common/src/main/java/org/richfaces/renderkit/Expression.java (rev 0)
+++ trunk/richfaces/common/src/main/java/org/richfaces/renderkit/Expression.java 2007-06-25 16:48:09 UTC (rev 1303)
@@ -0,0 +1,50 @@
+/**
+ *
+ */
+package org.richfaces.renderkit;
+
+/**
+ * @author Nick Belaevski - mailto:nbelaevski@exadel.com
+ * created 20.06.2007
+ *
+ */
+public class Expression {
+ private Object expression;
+
+ public Expression(Object expression) {
+ super();
+ this.expression = expression;
+ }
+
+ public Object getExpression() {
+ return expression;
+ }
+
+ public String toString() {
+ return super.toString() + "[" + expression + "]";
+ }
+
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result
+ + ((expression == null) ? 0 : expression.hashCode());
+ return result;
+ }
+
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final Expression other = (Expression) obj;
+ if (expression == null) {
+ if (other.expression != null)
+ return false;
+ } else if (!expression.equals(other.expression))
+ return false;
+ return true;
+ }
+}
Deleted: trunk/richfaces/common/src/main/java/org/richfaces/renderkit/ExpressionHolder.java
===================================================================
--- trunk/richfaces/common/src/main/java/org/richfaces/renderkit/ExpressionHolder.java 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/richfaces/common/src/main/java/org/richfaces/renderkit/ExpressionHolder.java 2007-06-25 16:48:09 UTC (rev 1303)
@@ -1,26 +0,0 @@
-/**
- *
- */
-package org.richfaces.renderkit;
-
-/**
- * @author Nick Belaevski - mailto:nbelaevski@exadel.com
- * created 20.06.2007
- *
- */
-public class ExpressionHolder {
- private Object expression;
-
- public ExpressionHolder(Object expression) {
- super();
- this.expression = expression;
- }
-
- public Object getExpression() {
- return expression;
- }
-
- public String toString() {
- return super.toString() + "[" + expression + "]";
- }
-}
Added: trunk/richfaces/common/src/main/java/org/richfaces/renderkit/MacroDefinitionJSContentHandler.java
===================================================================
--- trunk/richfaces/common/src/main/java/org/richfaces/renderkit/MacroDefinitionJSContentHandler.java (rev 0)
+++ trunk/richfaces/common/src/main/java/org/richfaces/renderkit/MacroDefinitionJSContentHandler.java 2007-06-25 16:48:09 UTC (rev 1303)
@@ -0,0 +1,174 @@
+/**
+ *
+ */
+package org.richfaces.renderkit;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Iterator;
+import java.util.List;
+
+import org.antlr.runtime.ANTLRStringStream;
+import org.antlr.runtime.CommonTokenStream;
+import org.antlr.runtime.RecognitionException;
+import org.richfaces.RichMacroDefinitionLexer;
+import org.richfaces.RichMacroDefinitionParser;
+import org.richfaces.RichMacroDefinitionParser.expression_return;
+import org.richfaces.json.JSContentHandler;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+
+/**
+ * @author Nick Belaevski - mailto:nbelaevski@exadel.com created 21.06.2007
+ *
+ */
+public class MacroDefinitionJSContentHandler extends JSContentHandler {
+ private String prolog;
+ private String epilog;
+
+ public MacroDefinitionJSContentHandler(Writer writer, String prolog,
+ String epilog) {
+ super(writer);
+ this.prolog = prolog;
+ this.epilog = epilog;
+ }
+
+ private List parseExpressiion(String expressionString) throws SAXException {
+ ANTLRStringStream stream = new ANTLRStringStream(expressionString);
+ RichMacroDefinitionLexer lexer = new RichMacroDefinitionLexer(stream);
+ RichMacroDefinitionParser macroParser = new RichMacroDefinitionParser(
+ new CommonTokenStream(lexer));
+ try {
+ expression_return expression = macroParser.expression();
+ List result = expression.result;
+
+ return result;
+ } catch (RecognitionException e) {
+ throw new SAXException(e.getMessage(), e);
+ }
+ }
+
+ private void encodeExpressionString(String string) throws IOException,
+ SAXException {
+ List parsedExpressiion = parseExpressiion(string);
+
+ boolean isExpression = false;
+ for (Iterator iterator = parsedExpressiion.iterator(); iterator
+ .hasNext();) {
+ Object next = (Object) iterator.next();
+ if (next instanceof Expression) {
+ isExpression = true;
+ break;
+ }
+ }
+
+ if (isExpression) {
+ this.outputWriter.write("function (context) { return ");
+ }
+
+ boolean first = true;
+ for (Iterator iterator = parsedExpressiion.iterator(); iterator
+ .hasNext();) {
+ Object next = (Object) iterator.next();
+
+ if (next == null) {
+ continue;
+ }
+
+ if (!first) {
+ this.outputWriter.write('+');
+ }
+
+ if (next instanceof Expression) {
+ Expression macroExpression = (Expression) next;
+
+ this.outputWriter.write(prolog);
+ this.encode(macroExpression.getExpression().toString());
+ this.outputWriter.write(epilog);
+ } else {
+ this.outputWriter.write('\'');
+ this.encode(next.toString());
+ this.outputWriter.write('\'');
+ }
+
+ first = false;
+ }
+
+ if (isExpression) {
+ this.outputWriter.write(";}");
+ }
+ }
+
+ protected void encodeAttributeValue(Attributes attributes, int idx)
+ throws SAXException, IOException {
+
+ String value = attributes.getValue(idx);
+ encodeExpressionString(value);
+ }
+
+ public void characters(char[] ch, int start, int length)
+ throws SAXException {
+ if (isProcessingCdata()) {
+ super.characters(ch, start, length);
+ } else {
+ List parsedExpression = parseExpressiion(new String(ch, start, length));
+ for (Iterator iterator = parsedExpression.iterator(); iterator
+ .hasNext();) {
+
+ Object next = iterator.next();
+
+ if (next instanceof Expression) {
+ Expression expression = (Expression) next;
+
+ if (this.isBeforeDocumentStart() || level < 0)
+ return;
+ try {
+ if (level != 0 && !this.closeElement(false) && this.isProcessingCdata() == false) {
+ this.outputWriter.write(',');
+ }
+
+ if (this.isProcessingCdata() == false) {
+ this.outputWriter.write("new ET(");
+ }
+
+ this.outputWriter.write("function (context) { return ");
+ this.outputWriter.write(prolog);
+ this.encode(expression.getExpression().toString());
+ this.outputWriter.write(epilog);
+ this.outputWriter.write("}");
+
+ if (this.isProcessingCdata() == false) {
+ this.outputWriter.write(")");
+ }
+ } catch (IOException e) {
+ throw new SAXException("Write error",e);
+ }
+
+ } else {
+ char[] cs = next.toString().toCharArray();
+ super.characters(cs, 0, cs.length);
+ }
+
+ if (iterator.hasNext()) {
+ try {
+ this.outputWriter.write(',');
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ }
+
+ protected void encodeText(char[] chars, int start, int length)
+ throws SAXException, IOException {
+ if (!isProcessingCdata()) {
+ String str = new String(chars, start, length);
+ encodeExpressionString(str);
+ } else {
+ super.encodeText(chars, start, length);
+ }
+ }
+
+}
Added: trunk/richfaces/common/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java
===================================================================
--- trunk/richfaces/common/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java (rev 0)
+++ trunk/richfaces/common/src/main/java/org/richfaces/renderkit/TemplateEncoderRendererBase.java 2007-06-25 16:48:09 UTC (rev 1303)
@@ -0,0 +1,162 @@
+/**
+ *
+ */
+package org.richfaces.renderkit;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.Iterator;
+import java.util.Properties;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Result;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.sax.SAXResult;
+
+import org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyParser;
+import org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyXMLFilter;
+import org.ajax4jsf.framework.renderer.HeaderResourcesRendererBase;
+import org.ajax4jsf.framework.renderer.RendererBase;
+import org.richfaces.json.JSContentHandler;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author Nick Belaevski - mailto:nbelaevski@exadel.com
+ * created 22.06.2007
+ *
+ */
+public abstract class TemplateEncoderRendererBase extends HeaderResourcesRendererBase {
+ private TransformerFactory transformerFactory;
+
+ public TemplateEncoderRendererBase() {
+ super();
+
+ transformerFactory = TransformerFactory.newInstance();
+ }
+
+ public final boolean getRendersChildren() {
+ return true;
+ }
+
+ private void writeScriptBody(ResponseWriter writer, String string) throws IOException {
+ Properties tidyProperties = new Properties();
+ InputStream propertiesStream = null;
+ try {
+ propertiesStream = TidyXMLFilter.class.getResourceAsStream("tidy.properties");
+ tidyProperties.load(propertiesStream);
+ } finally {
+ if (propertiesStream != null) {
+ propertiesStream.close();
+ }
+ }
+
+ TidyParser tidyParser = new TidyParser(tidyProperties);
+ Document parsedHtml = tidyParser.parseHtmlByTidy(new StringReader(string), null);
+ NodeList nodeList = parsedHtml.getDocumentElement().getChildNodes();
+ Node bodyNode = nodeList.item(nodeList.getLength() - 1);
+ NodeList bodyChildren = bodyNode.getChildNodes();
+ int bodyChildrenLength = bodyChildren.getLength();
+
+ writer.write("[");
+
+ try {
+ Transformer transformer;
+
+ synchronized (transformerFactory) {
+ transformer = transformerFactory.newTransformer();
+ }
+
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+
+ JSContentHandler contentHandler = new MacroDefinitionJSContentHandler(writer, "Richfaces.eval(\"", "\", context)");
+ Result result = new SAXResult(contentHandler);
+
+ for (int i = 0; i < bodyChildrenLength; i++) {
+ if (i != 0) {
+ writer.write(", ");
+ }
+ transformer.transform(new DOMSource(bodyChildren.item(i)), result);
+ }
+ } catch (TransformerException e) {
+ throw new IOException(e.getMessage());
+ }
+
+ writer.write("];\n");
+ }
+
+ private void encodeComponent(FacesContext context, UIComponent component, RendererBase rendererBase) throws IOException {
+ if (!component.isRendered()) {
+ return;
+ }
+
+ rendererBase.encodeBegin(context, component);
+ if (component.getRendersChildren() || rendererBase.getRendersChildren()) {
+ rendererBase.encodeChildren(context, component);
+ } else {
+ if (component.getChildCount() > 0) {
+ for (Iterator it = component.getChildren().iterator(); it.hasNext();) {
+ UIComponent child = (UIComponent) it.next();
+ renderChild(context, child);
+ }
+ }
+ }
+ rendererBase.encodeEnd(context, component);
+ }
+
+ protected void writeScriptBody(FacesContext context, UIComponent component, boolean children,
+ RendererBase rendererBase)
+ throws IOException {
+ ResponseWriter writer = context.getResponseWriter();
+ StringWriter dumpingWriter = new StringWriter();
+ ResponseWriter clonedWriter = writer.cloneWithWriter(dumpingWriter);
+ context.setResponseWriter(clonedWriter);
+ try {
+
+ if (rendererBase == null) {
+ if (children) {
+ this.renderChildren(context, component);
+ } else {
+ this.renderChild(context, component);
+ }
+ } else {
+ if (children) {
+ if (component.getChildCount() > 0)
+ for (Iterator it = component.getChildren().iterator(); it.hasNext();) {
+ UIComponent child = (UIComponent) it.next();
+
+ encodeComponent(context, child, rendererBase);
+ }
+ } else {
+ encodeComponent(context, component, rendererBase);
+ }
+ }
+
+ } finally {
+ clonedWriter.flush();
+ context.setResponseWriter(writer);
+ }
+
+ writeScriptBody(writer, dumpingWriter.toString());
+ }
+
+ public void encodeChildren(FacesContext context, UIComponent component)
+ throws IOException {
+ ResponseWriter writer = context.getResponseWriter();
+ writer.startElement("script", component);
+ writer.write("var evaluator = ");
+ writeScriptBody(context, component, true, null);
+ writer.write("new Insertion.Top($('" + component.getClientId(context) + "'), evaluator.invoke('getOuterHTML', window).join(''));");
+ writer.endElement("script");
+ }
+}
Modified: trunk/richfaces/common/src/main/resources/org/richfaces/renderkit/html/scripts/json/json-dom.js
===================================================================
--- trunk/richfaces/common/src/main/resources/org/richfaces/renderkit/html/scripts/json/json-dom.js 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/richfaces/common/src/main/resources/org/richfaces/renderkit/html/scripts/json/json-dom.js 2007-06-25 16:48:09 UTC (rev 1303)
@@ -143,9 +143,14 @@
E.prototype.getOuterHTML = function(context){
// AJAX_Log("Get Outer HTML for object:"+Dump(this);
var html = "<"+this.tag;
- var inner = this.getInnerHTML();
+ var inner = this.getInnerHTML(context);
for( var i in this.attrs ){
+ if (!this.attrs.hasOwnProperty(i)) {
+ continue ;
+ }
+
var attrValue = this.attrs[i];
+
if (typeof attrValue == "function") {
attrValue = attrValue(context);
}
@@ -162,7 +167,27 @@
}
return html;
};
+
+
+ // Escaped Text node
+ ET = function(text) {
+ this.value = text;
+ }
+
+ ET.prototype = new JSNode();
+ ET.prototype.getOuterHTML = function(context){
+ var value = this.value;
+ if (typeof value == "function") {
+ value = value(context);
+ }
+
+ if (value) {
+ return value;
+ }
+ return "";
+ }
+
// Text node
T = function(text) {
this.value = text;
Modified: trunk/richfaces/common/src/main/resources/org/richfaces/renderkit/html/scripts/utils.js
===================================================================
--- trunk/richfaces/common/src/main/resources/org/richfaces/renderkit/html/scripts/utils.js 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/richfaces/common/src/main/resources/org/richfaces/renderkit/html/scripts/utils.js 2007-06-25 16:48:09 UTC (rev 1303)
@@ -98,4 +98,18 @@
}
return null;
-};
\ No newline at end of file
+};
+
+Richfaces.eval = function(template, object) {
+ var value = '';
+
+ try {
+ with (object) {
+ value = eval(template) ;
+ }
+ } catch (e) {
+ LOG.warn('Exception: ' + e.message + '\n[' + template + ']');
+ }
+
+ return value;
+};
Modified: trunk/richfaces/common/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java
===================================================================
--- trunk/richfaces/common/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/richfaces/common/src/test/java/org/richfaces/renderkit/TemplateUtilTest.java 2007-06-25 16:48:09 UTC (rev 1303)
@@ -32,7 +32,6 @@
import org.richfaces.RichMacroDefinitionLexer;
import org.richfaces.RichMacroDefinitionParser;
import org.richfaces.RichMacroDefinitionParser.expression_return;
-import org.richfaces.renderkit.TemplateUtil.MacroTemplateHandler;
/**
* @author Nick Belaevski - mailto:nbelaevski@exadel.com
@@ -41,25 +40,8 @@
*/
public class TemplateUtilTest extends TestCase {
- private static class MacroTemplateHandlerImpl implements MacroTemplateHandler {
- private boolean handled = false;
-
- public String handle(String body) {
- handled = true;
- return "#" + body + "#";
- }
-
- public boolean isHandled() {
- return handled;
- }
- };
-
private String doWrite(String in) throws IOException {
- MacroTemplateHandlerImpl templateHandlerImpl = new MacroTemplateHandlerImpl();
- TemplateUtil testWriter = new TemplateUtil(templateHandlerImpl);
- testWriter.append(in);
- String result = testWriter.getResult();
- return result;
+ return in;
}
private void printTree(Tree tree, int indent) {
@@ -81,33 +63,8 @@
RichMacroDefinitionParser macroParser = new RichMacroDefinitionParser(new CommonTokenStream(lexer));
expression_return expression = macroParser.expression();
List result = expression.result;
- ExpressionHolder holder = (ExpressionHolder) result.get(0);
+ Expression holder = (Expression) result.get(0);
assertEquals("aa{b}}a", holder.getExpression());
assertEquals("\\ a}b{c", result.get(1));
}
-
- public void testWriting() throws Exception {
- String[][] testStrings = new String[][] {
- {"\'a\' + #bcd# + \'e\'", "a{bcd}e"},
- {"\'a{bcd}e\'", "a\\{bcd}e"},
- {"\'a\\\\{bcd}e\'", "a\\\\{bcd}e"},
- {"\'a{bc}d\'", "a{bc\\}d"},
- {"\'a\' + #bc\\d# + \'e\'", "a{bc\\d}e"},
- {"\'a\' + #bc\\\\d# + \'e\'", "a{bc\\\\d}e"},
- {"\'a{bc\\\\}d\'", "a{bc\\\\}d"},
- {"#ab}# + \'c\'", "{ab\\}}c"},
- {"\'a\' + #{bc#", "a{\\{bc}"},
- {"#{aa}#", "{{aa}}"},
- {"\'aa\\\\}\'", "aa\\}"},
- {"\'{aa\\\\\'", "{aa\\"}
- };
-
- for (int i = 0; i < testStrings.length; i++) {
- String[] strings = testStrings[i];
-
- String written = doWrite(strings[1]);
- //System.out.println(strings[0] + " : " + strings[1] + " : " + written);
- assertEquals(strings[0], written);
- }
- }
}
Modified: trunk/richfaces/drag-drop/src/main/java/org/richfaces/renderkit/DragIndicatorRendererBase.java
===================================================================
--- trunk/richfaces/drag-drop/src/main/java/org/richfaces/renderkit/DragIndicatorRendererBase.java 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/richfaces/drag-drop/src/main/java/org/richfaces/renderkit/DragIndicatorRendererBase.java 2007-06-25 16:48:09 UTC (rev 1303)
@@ -22,7 +22,6 @@
package org.richfaces.renderkit;
import java.io.IOException;
-import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -31,30 +30,18 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
-import javax.faces.render.Renderer;
-import org.ajax4jsf.framework.renderer.HeaderResourcesRendererBase;
+import org.ajax4jsf.framework.renderer.RendererBase;
import org.richfaces.component.UIDragIndicator;
import org.richfaces.component.nsutils.NSUtils;
import org.richfaces.org.apache.commons.lang.StringEscapeUtils;
-import org.richfaces.renderkit.TemplateUtil.MacroTemplateHandler;
/**
* Base renderer class for drag indicator ( marker ).
* @author shura
*
*/
-public class DragIndicatorRendererBase extends HeaderResourcesRendererBase {
- private final static MacroTemplateHandler macroTemplateHandler = new MacroTemplateHandler() {
-
- public String handle(String body) {
- String paramAccess = "jsParams['" + body + "']";
-
- return ("((!!" + paramAccess + ") ? " + paramAccess + " : \"\")");
- }
-
- };
-
+public class DragIndicatorRendererBase extends TemplateEncoderRendererBase {
public static final String ACCEPT_CLASS = "acceptClass";
public static final String REJECT_CLASS = "rejectClass";
public static final String RENDERER_TYPE = "com.exadel.jsf.renderer.DropIndicatorRenderer";
@@ -79,12 +66,12 @@
FACETS_PREDEFINED.add(MULTI);
}
- private Renderer dragIndicatorViewRenderer = null;
+ private RendererBase dragIndicatorViewRenderer = null;
- private synchronized Renderer getViewRenderer() {
+ private synchronized RendererBase getViewRenderer() {
if (dragIndicatorViewRenderer == null) {
try {
- dragIndicatorViewRenderer = (Renderer) Class.forName("org.richfaces.renderkit.html.DragIndicatorViewRenderer").newInstance();
+ dragIndicatorViewRenderer = (RendererBase) Class.forName("org.richfaces.renderkit.html.DragIndicatorViewRenderer").newInstance();
} catch (InstantiationException e) {
throw new FacesException(e);
} catch (IllegalAccessException e) {
@@ -130,10 +117,6 @@
// return TemplateUtil.replaceParams(dumpWriter.getBuffer().toString(), "jsParams");
// }
- public boolean getRendersChildren() {
- return true;
- }
-
protected boolean notHasFacet(UIComponent component, Object facetName) {
return component.getFacet((String) facetName) == null;
}
@@ -167,31 +150,13 @@
UIComponent facet = component.getFacet(facetName);
- StringWriter dumpWriter = new StringWriter();
-
- try {
- context.setResponseWriter(responseWriter.cloneWithWriter(dumpWriter));
+ responseWriter.write("elt.indicatorTemplates['" + facetName + "'] = ");
- if (facet != null && facet.isRendered()) {
- renderChild(context, facet);
- } else {
-
- getViewRenderer().encodeBegin(context, component);
- getViewRenderer().encodeEnd(context, component);
-
- context.getResponseWriter().flush();
- }
- } finally {
- context.setResponseWriter(responseWriter);
+ if (facet != null && facet.isRendered()) {
+ writeScriptBody(context, facet, false, null);
+ } else {
+ writeScriptBody(context, component, false, getViewRenderer());
}
-
- responseWriter.write("elt.indicatorTemplates['" + facetName + "'] = function(element, jsParams) {\n");
- responseWriter.write("var content = ");
- TemplateUtil templateUtil = new TemplateUtil(macroTemplateHandler);
- templateUtil.append(dumpWriter.getBuffer().toString());
- String result = templateUtil.getResult();
- responseWriter.write(result + ";\n new Insertion.Top(element, content);\n");
- responseWriter.write("};");
}
//surround by CDATAs
Modified: trunk/richfaces/drag-drop/src/main/resources/org/richfaces/renderkit/html/scripts/drag-indicator.js
===================================================================
--- trunk/richfaces/drag-drop/src/main/resources/org/richfaces/renderkit/html/scripts/drag-indicator.js 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/richfaces/drag-drop/src/main/resources/org/richfaces/renderkit/html/scripts/drag-indicator.js 2007-06-25 16:48:09 UTC (rev 1303)
@@ -20,11 +20,15 @@
}
}
+ var parts;
+
if (single) {
- this.indicatorTemplates['single'](this, params);
+ parts = this.indicatorTemplates['single'];
} else {
- this.indicatorTemplates['multi'](this, params);
+ parts = this.indicatorTemplates['multi'];
}
+
+ new Insertion.Top(this, parts.invoke('getOuterHTML', params).join(''));
},
show: function() {
Modified: trunk/richfaces/drag-drop/src/main/templates/org/richfaces/htmlDragIndicator.jspx
===================================================================
--- trunk/richfaces/drag-drop/src/main/templates/org/richfaces/htmlDragIndicator.jspx 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/richfaces/drag-drop/src/main/templates/org/richfaces/htmlDragIndicator.jspx 2007-06-25 16:48:09 UTC (rev 1303)
@@ -16,6 +16,7 @@
new org.ajax4jsf.framework.ajax.AjaxScript(),
new org.ajax4jsf.dnd.DnDScript(),
/org/richfaces/renderkit/html/scripts/utils.js,
+ /org/richfaces/renderkit/html/scripts/json/json-dom.js,
/org/richfaces/renderkit/html/scripts/dnd/dnd-common.js,
scripts/drag-indicator.js
</h:scripts>
Modified: trunk/sandbox/calendar/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java
===================================================================
--- trunk/sandbox/calendar/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/sandbox/calendar/src/main/java/org/richfaces/renderkit/CalendarRendererBase.java 2007-06-25 16:48:09 UTC (rev 1303)
@@ -21,173 +21,19 @@
package org.richfaces.renderkit;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.Properties;
-
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Result;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.sax.SAXResult;
-
-import org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyParser;
-import org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyXMLFilter;
-import org.ajax4jsf.framework.renderer.HeaderResourcesRendererBase;
import org.richfaces.component.UICalendar;
-import org.richfaces.json.JSContentHandler;
-import org.richfaces.org.apache.commons.lang.StringEscapeUtils;
-import org.richfaces.renderkit.TemplateUtil.MacroTemplateHandler;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
/**
* @author Nick Belaevski - mailto:nbelaevski@exadel.com
* created 08.06.2007
*
*/
-public class CalendarRendererBase extends HeaderResourcesRendererBase {
+public class CalendarRendererBase extends TemplateEncoderRendererBase {
- private static final MacroTemplateHandler macroTemplateHandler = new MacroTemplateHandler() {
-
- public String handle(String body) {
- return "calendarEval(\"" +
- StringEscapeUtils.escapeJavaScript(body) + "\", context)";
- }
-
- };
-
- private TransformerFactory transformerFactory;
-
- public CalendarRendererBase() {
- super();
-
- transformerFactory = TransformerFactory.newInstance();
- }
-
/* (non-Javadoc)
* @see org.ajax4jsf.framework.renderer.RendererBase#getComponentClass()
*/
protected Class getComponentClass() {
return UICalendar.class;
}
-
- public boolean getRendersChildren() {
- return true;
- }
-
- public void encodeChildren(FacesContext context, UIComponent component)
- throws IOException {
- ResponseWriter writer = context.getResponseWriter();
- StringWriter dumpingWriter = new StringWriter();
- ResponseWriter clonedWriter = writer.cloneWithWriter(dumpingWriter);
- context.setResponseWriter(clonedWriter);
- try {
- renderChildren(context, component);
- } finally {
- clonedWriter.flush();
- context.setResponseWriter(writer);
- }
-
- Properties tidyProperties = new Properties();
- InputStream propertiesStream = null;
- try {
- propertiesStream = TidyXMLFilter.class.getResourceAsStream("tidy.properties");
- tidyProperties.load(propertiesStream);
- } finally {
- if (propertiesStream != null) {
- propertiesStream.close();
- }
- }
-
- TidyParser tidyParser = new TidyParser(tidyProperties);
- Document parsedHtml = tidyParser.parseHtmlByTidy(new StringReader(dumpingWriter.toString()), null);
- NodeList nodeList = parsedHtml.getDocumentElement().getChildNodes();
- Node bodyNode = nodeList.item(nodeList.getLength() - 1);
- NodeList bodyChildren = bodyNode.getChildNodes();
- int bodyChildrenLength = bodyChildren.getLength();
-
- writer.startElement("script", component);
- writer.write("calendarEval = function(template, object)" +
-"{" +
-" var value=\"\";"+
-" try { with (object) value=eval(template) } catch (e) { LOG.warn('Exception: '+e.message + '\\n[' + template + ']'); }"+
-" return value;};");
-
- writer.write("var evaluator = new Object(); evaluator.parts = [ ");
-
- try {
- Transformer transformer;
-
- synchronized (transformerFactory) {
- transformer = transformerFactory.newTransformer();
- }
-
- transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
- transformer.setOutputProperty(OutputKeys.METHOD, "xml");
-
- JSContentHandler contentHandler = new JSContentHandler(writer) {
- protected void encodeAttributeValue(Attributes attributes,
- int idx) throws SAXException, IOException {
-
- String value = attributes.getValue(idx);
- TemplateUtil templateUtil = new TemplateUtil(macroTemplateHandler);
- templateUtil.append(value);
- if (templateUtil.isMacroDefined()) {
- outputWriter.write("function (context) { return " + templateUtil.getResult() + ";}");
- } else {
- outputWriter.write(templateUtil.getResult());
- }
- }
-
- protected void encodeText(char[] chars, int start, int length)
- throws SAXException, IOException {
- if (!isProcessingCdata()) {
- String str = new String(chars, start, length);
- TemplateUtil templateUtil = new TemplateUtil(macroTemplateHandler);
- try {
- templateUtil.append(str);
- if (templateUtil.isMacroDefined()) {
- str = "function (context) { return " + templateUtil.getResult() + ";}";
- } else {
- str = templateUtil.getResult();
- }
-
- outputWriter.write(str);
- } catch (IOException e) {
- throw new SAXException(e.getMessage(), e);
- }
- } else {
- super.encodeText(chars, start, length);
- }
- }
- };
- Result result = new SAXResult(contentHandler);
-
- for (int i = 0; i < bodyChildrenLength; i++) {
- if (i != 0) {
- writer.write(", ");
- }
- transformer.transform(new DOMSource(bodyChildren.item(i)), result);
- }
- } catch (TransformerException e) {
- throw new IOException(e.getMessage());
- }
-
- writer.write("]; evaluator.evaluate = function (context) { var result = '';");
- writer.write(" for (var i = 0; i < this.parts.length; i++) result += this.parts[i].getOuterHTML(context); return result;};\n");
-
- writer.write("new Insertion.Top($('" + component.getClientId(context) + "'), evaluator.evaluate(window));");
- writer.endElement("script");
- }
}
Modified: trunk/sandbox/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx
===================================================================
--- trunk/sandbox/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx 2007-06-25 16:31:51 UTC (rev 1302)
+++ trunk/sandbox/calendar/src/main/templates/org/richfaces/htmlCalendar.jspx 2007-06-25 16:48:09 UTC (rev 1303)
@@ -11,7 +11,7 @@
component="org.richfaces.component.UICalendar"
>
<f:clientid var="clientId"/>
- <h:scripts>new org.ajax4jsf.framework.resource.PrototypeScript(),new org.ajax4jsf.framework.ajax.AjaxScript(),/org/richfaces/renderkit/html/scripts/json/json-dom.js</h:scripts>
+ <h:scripts>new org.ajax4jsf.framework.resource.PrototypeScript(),new org.ajax4jsf.framework.ajax.AjaxScript(),/org/richfaces/renderkit/html/scripts/utils.js,/org/richfaces/renderkit/html/scripts/json/json-dom.js</h:scripts>
<div id="#{clientId}"
x:passThruWithExclusions="value,name,type,id"
>
16 years, 11 months
JBoss Rich Faces SVN: r1302 - trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/component.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-06-25 12:31:51 -0400 (Mon, 25 Jun 2007)
New Revision: 1302
Modified:
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/component/UIScrollableGrid.java
Log:
remember visited rows, and walk through it on validate and updates phases
Modified: trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/component/UIScrollableGrid.java
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/component/UIScrollableGrid.java 2007-06-25 16:29:09 UTC (rev 1301)
+++ trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/component/UIScrollableGrid.java 2007-06-25 16:31:51 UTC (rev 1302)
@@ -47,10 +47,14 @@
public static final String COMPONENT_TYPE = "org.richfaces.component.ScrollableGrid";
+ private boolean MODEL_RANGE = false;
+
private final static Log log = LogFactory.getLog(UIScrollableGrid.class);
private transient Collection partialUpdateChildren;
-
+
+ private List ranges;
+
private Collection responseData = new ArrayList();
private int reqRowsCount = -1;
@@ -110,6 +114,33 @@
}
};
}
+
+
+ public void processDecodes(FacesContext faces) {
+ MODEL_RANGE = true;
+ System.out.println("UIScrollableGrid.processDecodes()");
+ super.processDecodes(faces);
+ }
+
+ public void processValidators(FacesContext faces) {
+ MODEL_RANGE = false;
+ System.out.println("UIScrollableGrid.processValidators()");
+ super.processValidators(faces);
+ }
+
+ public void processUpdates(FacesContext faces) {
+ MODEL_RANGE = false;
+ System.out.println("UIScrollableGrid.processUpdates()");
+ super.processUpdates(faces);
+ ranges.clear();
+ }
+
+ public void encodeBegin(FacesContext context) throws IOException {
+ System.out.println("UIScrollableGrid.encodeBegin()");
+ MODEL_RANGE = true;
+ super.encodeBegin(context);
+ }
+
protected ExtendedDataModel createDataModel() {
Object value = getValue();
@@ -121,7 +152,6 @@
if (log.isDebugEnabled()) {
log.debug("Found instanceof " + value.getClass() + " will use it unwrapped");
}
-
model = (GridDataModel) value;
} else if (value instanceof List) {
@@ -170,16 +200,19 @@
public Object saveState(FacesContext context) {
- Object values[] = new Object[5];
+ Object values[] = new Object[2];
values[0] = super.saveState(context);
+ values[1] = getRanges();
+
return (Object)values;
}
public void restoreState(FacesContext context, Object state) {
-
Object values[] = (Object[])state;
super.restoreState(context, values[0]);
+ setRanges((List)values[1]);
+
}
protected Iterator dataChildren() {
@@ -236,9 +269,9 @@
event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
}else if(event instanceof SortEvent){
new AjaxEvent(this).queue();
- event.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
}else if(event instanceof ScrollEvent){
- event.setPhaseId(PhaseId.INVOKE_APPLICATION);
+ event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
new AjaxEvent(this).queue();
}
super.queueEvent(event);
@@ -271,8 +304,29 @@
getFacesContext().renderResponse();
}
- public void walk(FacesContext context, DataVisitor visitor, Object argument) throws IOException {
- super.walk(context, visitor, argument);
+ public void walk(FacesContext faces, DataVisitor visitor, Object argument) throws IOException {
+
+ Range visitedRange = getComponentState().getRange();
+
+ if(ranges == null){
+ ranges = new ArrayList();
+ }
+
+ if(!ranges.contains(visitedRange)){
+ ranges.add(visitedRange);
+ }
+
+ if(!MODEL_RANGE){
+
+ for (Iterator iter = ranges.iterator(); iter.hasNext();) {
+ ScrollableGridRange range = (ScrollableGridRange) iter.next();
+ System.out.println("Range is: " + range.getFirst() + " - " + range.getLast() + " sortOrder: " + range.getSortOrder() );
+ getExtendedDataModel().walk(faces, visitor,range, argument);
+ }
+
+ }else{
+ super.walk(faces, visitor, argument);
+ }
}
public Collection getPartialUpdateChildren() {
@@ -293,4 +347,12 @@
public boolean isCacheable() {
return true;
}
+
+ public List getRanges() {
+ return ranges;
+ }
+
+ public void setRanges(List ranges) {
+ this.ranges = ranges;
+ }
}
16 years, 11 months
JBoss Rich Faces SVN: r1301 - trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/model.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-06-25 12:29:09 -0400 (Mon, 25 Jun 2007)
New Revision: 1301
Modified:
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/model/DataModelCache.java
Log:
override getId method
Modified: trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/model/DataModelCache.java
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/model/DataModelCache.java 2007-06-25 16:28:03 UTC (rev 1300)
+++ trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/model/DataModelCache.java 2007-06-25 16:29:09 UTC (rev 1301)
@@ -91,7 +91,7 @@
log.debug("Trying to get object by id" + id);
}
//First try to find data in inner cache
- //If not fo9und - get it from original model
+ //If not found - get it from original model
Object cached = secondaryMapping.get(id);
if (cached == null) {
@@ -173,6 +173,9 @@
gridDataModel.setWrappedData(arg0);
}
+ public Object getId(Object o) {
+ return gridDataModel.getId(o);
+ }
public void walk(FacesContext context, DataVisitor visitor, Range range,
Object argument) throws IOException {
16 years, 11 months
JBoss Rich Faces SVN: r1300 - trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/model.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-06-25 12:28:03 -0400 (Mon, 25 Jun 2007)
New Revision: 1300
Modified:
trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/model/ScrollableGridRange.java
Log:
override equals and hashCode methods
Modified: trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/model/ScrollableGridRange.java
===================================================================
--- trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/model/ScrollableGridRange.java 2007-06-25 16:27:16 UTC (rev 1299)
+++ trunk/sandbox/scrollable-grid/src/main/java/org/richfaces/model/ScrollableGridRange.java 2007-06-25 16:28:03 UTC (rev 1300)
@@ -10,6 +10,8 @@
package org.richfaces.model;
+import java.io.Serializable;
+
import org.ajax4jsf.ajax.repeat.Range;
@@ -18,8 +20,10 @@
* @author Maksim Kaszynski
* @modified by Anton Belevich
*/
-public class ScrollableGridRange implements Range{
+public class ScrollableGridRange implements Range, Serializable{
+ private static final long serialVersionUID = -6675002421400464892L;
+
private int first = 0;
private int last = 0;
private SortOrder sortOrder;
@@ -63,4 +67,27 @@
public void setSortOrder(SortOrder sortOrder) {
this.sortOrder = sortOrder;
}
+
+ public boolean equals(Object obj) {
+
+ if(!(obj instanceof ScrollableGridRange)){
+ return super.equals(obj);
+ }
+
+ ScrollableGridRange ref = (ScrollableGridRange)obj;
+
+ boolean ret = (this.first == ref.first)&&(this.last == ref.last );
+
+ if(this.sortOrder != null){
+ ret = ret && this.sortOrder.equals(ref.sortOrder);
+ } else {
+ ret = (ret && (ref.sortOrder == null));
+ }
+
+ return ret;
+ }
+
+ public int hashCode() {
+ return super.hashCode();
+ }
}
16 years, 11 months