JBoss Rich Faces SVN: r10438 - in trunk/framework/impl: src/main/javascript/prototype and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2008-09-12 11:30:13 -0400 (Fri, 12 Sep 2008)
New Revision: 10438
Modified:
trunk/framework/impl/generatescript.xml
trunk/framework/impl/src/main/javascript/prototype/patches.js
trunk/framework/impl/src/main/javascript/prototype/prototype-1.6.0.2.js
Log:
https://jira.jboss.org/jira/browse/RF-3401
Modified: trunk/framework/impl/generatescript.xml
===================================================================
--- trunk/framework/impl/generatescript.xml 2008-09-12 14:18:18 UTC (rev 10437)
+++ trunk/framework/impl/generatescript.xml 2008-09-12 15:30:13 UTC (rev 10438)
@@ -61,7 +61,7 @@
<filelist id="prototype"
dir="${basedir}/src/main/javascript/prototype"
- files="prototype1.6.0.js,../memory.js,patches.js">
+ files="prototype-1.6.0.2.js,../memory.js,patches.js">
</filelist>
Modified: trunk/framework/impl/src/main/javascript/prototype/patches.js
===================================================================
--- trunk/framework/impl/src/main/javascript/prototype/patches.js 2008-09-12 14:18:18 UTC (rev 10437)
+++ trunk/framework/impl/src/main/javascript/prototype/patches.js 2008-09-12 15:30:13 UTC (rev 10438)
@@ -64,7 +64,7 @@
if (window.RichFaces && window.RichFaces.Memory) {
window.RichFaces.Memory.addCleaner("prototype", function(node) {
- var eventID = node._eventID;
+ var eventID = node._prototypeEventID ? node._prototypeEventID[0] : undefined;
if (eventID) {
var cache = Event.cache[eventID];
Modified: trunk/framework/impl/src/main/javascript/prototype/prototype-1.6.0.2.js
===================================================================
--- trunk/framework/impl/src/main/javascript/prototype/prototype-1.6.0.2.js 2008-09-12 14:18:18 UTC (rev 10437)
+++ trunk/framework/impl/src/main/javascript/prototype/prototype-1.6.0.2.js 2008-09-12 15:30:13 UTC (rev 10438)
@@ -386,7 +386,9 @@
var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
return (this.match(matchAll) || []).map(function(scriptTag) {
- return (scriptTag.match(matchOne) || ['', ''])[1];
+ var result = (scriptTag.match(matchOne) || ['', ''])[1];
+ result = result.replace(/</,"<").replace(/\s*<!--[^\r\n]*/, "");
+ return result;
});
},
@@ -4032,13 +4034,20 @@
}
} else {
- document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
- $("__onDOMContentLoaded").onreadystatechange = function() {
- if (this.readyState == "complete") {
- this.onreadystatechange = null;
- fireContentLoadedEvent();
- }
- };
+ // added by Pavel Yaschenko // http://jira.jboss.com/jira/browse/RF-3879
+
+ // for 1.6.0.2
+ if (document.loaded) return;
+
+ if (document.readyState != "complete") { // added by Pavel Yaschenko
+ document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
+ $("__onDOMContentLoaded").onreadystatechange = function() {
+ if (this.readyState == "complete") {
+ this.onreadystatechange = null;
+ fireContentLoadedEvent();
+ }
+ };
+ } // added by Pavel Yaschenko
}
})();
/*------------------------------- DEPRECATED -------------------------------*/
16 years, 3 months
JBoss Rich Faces SVN: r10437 - in trunk/samples/richfaces-demo/src/main: webapp/richfaces and 3 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2008-09-12 10:18:18 -0400 (Fri, 12 Sep 2008)
New Revision: 10437
Added:
trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable/editDataTable.xhtml
trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable/examples/editTable.xhtml
Modified:
trunk/samples/richfaces-demo/src/main/java/org/richfaces/datatablescroller/DataTableScrollerBean.java
trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable.xhtml
trunk/samples/richfaces-demo/src/main/webapp/templates/include/sourceview.xhtml
Log:
dataTable vs modalPanel example
Modified: trunk/samples/richfaces-demo/src/main/java/org/richfaces/datatablescroller/DataTableScrollerBean.java
===================================================================
--- trunk/samples/richfaces-demo/src/main/java/org/richfaces/datatablescroller/DataTableScrollerBean.java 2008-09-12 14:02:57 UTC (rev 10436)
+++ trunk/samples/richfaces-demo/src/main/java/org/richfaces/datatablescroller/DataTableScrollerBean.java 2008-09-12 14:18:18 UTC (rev 10437)
@@ -6,10 +6,14 @@
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
+import java.util.Set;
+import javax.faces.context.FacesContext;
+
import org.richfaces.component.UIScrollableDataTable;
import org.richfaces.demo.datafilterslider.DemoInventoryItem;
import org.richfaces.model.SortField;
@@ -22,6 +26,13 @@
*
*/
public class DataTableScrollerBean {
+
+ private DemoInventoryItem currentItem = new DemoInventoryItem();
+
+ private Set<Integer> keys = new HashSet<Integer>();
+
+ private int currentRow;
+
private SimpleSelection selection = new SimpleSelection();
private UIScrollableDataTable table;
@@ -268,5 +279,39 @@
public void setOrder(SortOrder order) {
this.order = order;
}
+
+ public DemoInventoryItem getCurrentItem() {
+ return currentItem;
+ }
+
+ public void setCurrentItem(DemoInventoryItem currentItem) {
+ this.currentItem = currentItem;
+ }
+
+ public int getCurrentRow() {
+ return currentRow;
+ }
+
+ public void setCurrentRow(int currentRow) {
+ this.currentRow = currentRow;
+ }
+
+ public void store() {
+ allCars.set(currentRow, currentItem);
+ keys.clear();
+ keys.add(currentRow);
+ }
+
+ public void delete() {
+ allCars.remove(currentRow);
+ }
+
+ public Set<Integer> getKeys() {
+ return keys;
+ }
+
+ public void setKeys(Set<Integer> keys) {
+ this.keys = keys;
+ }
}
Added: trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable/editDataTable.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable/editDataTable.xhtml (rev 0)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable/editDataTable.xhtml 2008-09-12 14:18:18 UTC (rev 10437)
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+ <ui:composition template="/templates/component-sample.xhtml">
+ <ui:define name="sample">
+
+
+
+ <p>
+ In this example you could see two basic and frequently asked use-cases
+ implemented. TBD description.
+ </p>
+
+ <fieldset class="demo_fieldset">
+ <legend class="demo_legend">DataTable Column/ColumnGroup example</legend>
+ <div class="sample-container">
+ <ui:include src="/richfaces/dataTable/examples/editTable.xhtml"/>
+ <ui:include src="/templates/include/sourceview.xhtml">
+ <ui:param name="sourcepath" value="/richfaces/dataTable/examples/editTable.xhtml"/>
+ </ui:include>
+ </div>
+ </fieldset>
+ </ui:define>
+
+ </ui:composition>
+</html>
Added: trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable/examples/editTable.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable/examples/editTable.xhtml (rev 0)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable/examples/editTable.xhtml 2008-09-12 14:18:18 UTC (rev 10437)
@@ -0,0 +1,133 @@
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich">
+
+ <h:form>
+ <rich:dataTable value="#{dataTableScrollerBean.allCars}"
+ var="category" rows="20" rowKeyVar="row"
+ ajaxKeys="#{dataTableScrollerBean.keys}" id="table">
+ <f:facet name="header">
+ <h:outputText value="Cars Store"/>
+ </f:facet>
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="Make" />
+ </f:facet>
+ <h:outputText value="#{category.make}" id="make" />
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="Model" />
+ </f:facet>
+ <h:outputText value="#{category.model}" id="model" />
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="Price" />
+ </f:facet>
+ <h:outputText value="#{category.price}" id="price" />
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="Mileage" />
+ </f:facet>
+ <h:outputText value="#{category.mileage}" />
+ </rich:column>
+ <rich:column width="200px">
+ <f:facet name="header">
+ <h:outputText value="VIN" />
+ </f:facet>
+ <h:outputText value="#{category.vin}" />
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">
+ <h:outputText value="Stock" />
+ </f:facet>
+ <h:outputText value="#{category.stock}" />
+ </rich:column>
+ <rich:column>
+ <f:facet name="header">
+ Actions
+ </f:facet>
+ <a4j:commandLink ajaxSingle="true" id="editlink"
+ oncomplete="#{rich:component('editPanel')}.show()">
+ <h:graphicImage value="/images/icons/edit.gif" style="border:0"/>
+ <f:setPropertyActionListener value="#{category}"
+ target="#{dataTableScrollerBean.currentItem}" />
+ <f:setPropertyActionListener value="#{row}"
+ target="#{dataTableScrollerBean.currentRow}" />
+ <rich:toolTip value="Edit"></rich:toolTip>
+ </a4j:commandLink>
+ <a4j:commandLink ajaxSingle="true" id="deletelink"
+ oncomplete="#{rich:component('deletePanel')}.show()">
+ <h:graphicImage value="/images/icons/delete.gif" style="border:0"/>
+ <f:setPropertyActionListener value="#{row}"
+ target="#{dataTableScrollerBean.currentRow}" />
+ <rich:toolTip value="Delete"></rich:toolTip>
+ </a4j:commandLink>
+ </rich:column>
+ <f:facet name="footer">
+ <rich:datascroller renderIfSinglePage="false" maxPages="5"/>
+ </f:facet>
+ </rich:dataTable>
+ </h:form>
+
+ <rich:modalPanel id="editPanel" autosized="true">
+ <f:facet name="header">
+ <h:outputText value="Edit Current Car" />
+ </f:facet>
+ <f:facet name="controls">
+ <h:panelGroup>
+ <h:graphicImage value="/images/modal/close.png"
+ style="cursor:pointer" id="hidelink" />
+ <rich:componentControl for="editPanel" attachTo="hidelink"
+ operation="hide" event="onclick" />
+ </h:panelGroup>
+ </f:facet>
+ <h:form>
+ <a4j:outputPanel ajaxRendered="true">
+ <h:panelGrid columns="2">
+ <h:outputText value="Make" />
+ <h:inputText value="#{dataTableScrollerBean.currentItem.make}" />
+ <h:outputText value="Model" />
+ <h:inputText value="#{dataTableScrollerBean.currentItem.model}" />
+ <h:outputText value="Price" />
+ <h:inputText value="#{dataTableScrollerBean.currentItem.price}" />
+ </h:panelGrid>
+ </a4j:outputPanel>
+ <a4j:commandButton value="Store"
+ action="#{dataTableScrollerBean.store}"
+ reRender="make, model, price"
+ oncomplete="#{rich:component('editPanel')}.hide();" />
+ </h:form>
+ </rich:modalPanel>
+ <rich:modalPanel id="deletePanel" autosized="true">
+ <f:facet name="header">
+ <h:outputText value="Delete this car from list?"
+ style="padding-right:15px;" />
+ </f:facet>
+ <f:facet name="controls">
+ <h:panelGroup>
+ <h:graphicImage value="/images/modal/close.png"
+ style="cursor:pointer" id="hidelink2" />
+ <rich:componentControl for="deletePanel" attachTo="hidelink2"
+ operation="hide" event="onclick" />
+ </h:panelGroup>
+ </f:facet>
+ <h:form>
+ <h:panelGrid columns="2" width="100%">
+ <a4j:commandButton value="Yes" ajaxSingle="true"
+ action="#{dataTableScrollerBean.delete}"
+ oncomplete="#{rich:component('deletePanel')}.hide();"
+ reRender="table" />
+ <a4j:commandButton value="Cancel"
+ onclick="#{rich:component('deletePanel')}.hide();return false;" />
+ </h:panelGrid>
+ </h:form>
+ </rich:modalPanel>
+ <rich:messages></rich:messages>
+</ui:composition>
+
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable.xhtml 2008-09-12 14:02:57 UTC (rev 10436)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/dataTable.xhtml 2008-09-12 14:18:18 UTC (rev 10437)
@@ -15,6 +15,9 @@
<rich:tab label="Extended Data Model" name="dataModel">
<ui:include src="/richfaces/dataTable/extended-data-model.xhtml"/>
</rich:tab>
+ <rich:tab label="Edit Table with ModalPanel" name="editDataTable">
+ <ui:include src="/richfaces/dataTable/editDataTable.xhtml"/>
+ </rich:tab>
<rich:tab name="info" label="Tag Information">
<rich:insert
src="/WEB-INF/#{componentNavigator.currentComponent.tagInfoLocation}"
Modified: trunk/samples/richfaces-demo/src/main/webapp/templates/include/sourceview.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/templates/include/sourceview.xhtml 2008-09-12 14:02:57 UTC (rev 10436)
+++ trunk/samples/richfaces-demo/src/main/webapp/templates/include/sourceview.xhtml 2008-09-12 14:18:18 UTC (rev 10437)
@@ -50,13 +50,13 @@
<a4j:outputPanel id="hide2" styleClass="viewsourcelooklink" style="display:none">
<rich:effect for="hide2" event="onclick" type="BlindUp" targetId="source1" params="id:'source1', duration:1.0" />
<rich:effect for="hide2" event="onclick" type="Appear" targetId="look" params="delay:1.5, duration:0.5" />
- <rich:effect for="hide2" event="onclick" type="Fade" targetId="hide2" params="delay:0.9, duration:0.1" />
+ <rich:effect for="hide2" event="onclick" type="Fade" targetId="hide2" params="delay:0.0, duration:0.1" />
<h:outputText style="padding-right:5px" value="Hide"/>
</a4j:outputPanel>
<a4j:outputPanel styleClass="viewsourcelooklink" id="look">
<rich:effect for="look" event="onclick" type="Fade" targetId="source1" params="duration:0.0" />
- <rich:effect for="look" event="onclick" type="Fade" params="duration:0.1" />
+ <rich:effect for="look" event="onclick" type="Fade" params="duration:0.0" />
<rich:effect for="look" event="onclick" type="BlindDown" targetId="source1" params="delay:0.1,duration:1.0,from:0.0,to:1.0" />
<rich:effect for="look" event="onclick" type="Appear" targetId="source1" params="delay:0.1,duration:0.5,from:0.0,to:1.0" />
<rich:effect for="look" event="onclick" type="Appear" targetId="hide2" params="delay:1.5,duration:1.0,from:0.0,to:1.0" />
@@ -75,7 +75,7 @@
<a4j:outputPanel id="hide" styleClass="viewsourcehidelink">
<rich:effect for="hide" event="onclick" type="BlindUp" targetId="source1" params="id:'source1', duration:1.0" />
<rich:effect for="hide" event="onclick" type="Appear" targetId="look" params="delay:1.5, duration:0.5" />
- <rich:effect for="hide" event="onclick" type="Fade" targetId="hide2" params="delay:1.0, duration:0.1" />
+ <rich:effect for="hide" event="onclick" type="Fade" targetId="hide2" params="delay:0.0, duration:0.1" />
<h:outputText style="padding-right:5px" value="<<Hide Source"/>
</a4j:outputPanel>
16 years, 3 months
JBoss Rich Faces SVN: r10436 - in trunk/framework: impl/src/main/java/org/ajax4jsf/resource and 3 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2008-09-12 10:02:57 -0400 (Fri, 12 Sep 2008)
New Revision: 10436
Modified:
trunk/framework/api/src/main/java/org/ajax4jsf/resource/ResourceContext.java
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/CachedResourceContext.java
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/FacesResourceContext.java
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/InternetResourceBase.java
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ServletResourceContext.java
trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/CacheContent.java
trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockFacesResourceContext.java
trunk/framework/test/src/test/java/org/ajax4jsf/resource/InternetResourceServiceTestCase.java
trunk/framework/test/src/test/java/org/ajax4jsf/resource/ResourceServiceThreadsTestCase.java
Log:
https://jira.jboss.org/jira/browse/RF-4427
Modified: trunk/framework/api/src/main/java/org/ajax4jsf/resource/ResourceContext.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/resource/ResourceContext.java 2008-09-12 14:00:52 UTC (rev 10435)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/resource/ResourceContext.java 2008-09-12 14:02:57 UTC (rev 10436)
@@ -122,6 +122,12 @@
*/
public abstract void setContentType(String contentType);
+ /**
+ * Setup response content length as {@see javax.servlet.ServletResponse#setContentLength(int)}
+ * @param contentLength
+ */
+ public abstract void setContentLength(int contentLength);
+
public abstract String getInitParameter(String name);
public Object getResourceData() {
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/CachedResourceContext.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/CachedResourceContext.java 2008-09-12 14:00:52 UTC (rev 10435)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/CachedResourceContext.java 2008-09-12 14:02:57 UTC (rev 10436)
@@ -128,6 +128,10 @@
public void setContentType(String contentType) {
this.content.setContentType(contentType);
}
+
+ public void setContentLength(int contentLength) {
+ this.content.setContentLength(contentLength);
+ }
public Object getResourceData() {
return parent.getResourceData();
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/FacesResourceContext.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/FacesResourceContext.java 2008-09-12 14:00:52 UTC (rev 10435)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/FacesResourceContext.java 2008-09-12 14:02:57 UTC (rev 10436)
@@ -193,7 +193,12 @@
response.setContentType(contentType);
}
+
+ public void setContentLength(int contentLength) {
+ response.setContentLength(contentLength);
+ }
+
public String getInitParameter(String name) {
// TODO Auto-generated method stub
return externalContext.getInitParameter(name);
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/InternetResourceBase.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/InternetResourceBase.java 2008-09-12 14:00:52 UTC (rev 10435)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/InternetResourceBase.java 2008-09-12 14:02:57 UTC (rev 10436)
@@ -378,7 +378,7 @@
if (isCacheable(context)) {
if (context instanceof CachedResourceContext) {
CachedResourceContext cachedContext = (CachedResourceContext) context;
- cachedContext.getContent().setIntHeader("Content-Length", total);
+ cachedContext.getContent().setContentLength(total);
} else {
setContentLength(total);
}
@@ -405,8 +405,7 @@
int contentLength = getContentLength(context);
if (cached) {
if (contentLength > 0) {
- context.setIntHeader("Content-Length",
- contentLength);
+ context.setContentLength(contentLength);
}
long expired = getExpired(context);
if (expired < 0 ) {
@@ -418,8 +417,7 @@
+ (expired / 1000L));
} else {
if (contentLength > 0) {
- context.setIntHeader("Content-Length",
- contentLength);
+ context.setContentLength(contentLength);
// } else {
// context.setHeader("Transfer-Encoding", "chunked");
}
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ServletResourceContext.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ServletResourceContext.java 2008-09-12 14:00:52 UTC (rev 10435)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ServletResourceContext.java 2008-09-12 14:02:57 UTC (rev 10436)
@@ -130,6 +130,10 @@
response.setContentType(contentType);
}
+ public void setContentLength(int contentLength) {
+ response.setContentLength(contentLength);
+ }
+
public String getInitParameter(String name) {
// TODO Auto-generated method stub
return context.getInitParameter(name);
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/CacheContent.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/CacheContent.java 2008-09-12 14:00:52 UTC (rev 10435)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/CacheContent.java 2008-09-12 14:02:57 UTC (rev 10436)
@@ -74,6 +74,8 @@
private String contentType;
+ private Integer contentLength;
+
/**
* Send saved content to http responce
*
@@ -118,6 +120,11 @@
realContentLength = outputStream.getLength();
}
} // TODO - calculate content-lenght for writer ?
+
+ if (realContentLength <= 0 && contentLength != null) {
+ realContentLength = contentLength.intValue();
+ }
+
for (Iterator<Entry<String, Object>> iter = headers.entrySet()
.iterator(); iter.hasNext();) {
Entry<String, Object> element = iter.next();
@@ -130,8 +137,13 @@
} else if (headerValue instanceof Integer) {
Integer value = (Integer) headerValue;
// Check real content length.
- if ( !(realContentLength > 0
- && "Content-Length".equals(header))) {
+ if ("Content-Length".equals(header)) {
+ if (realContentLength <= 0) {
+ realContentLength = value.intValue();
+ } else {
+ //do nothing
+ }
+ } else {
response.setIntHeader(header, value.intValue());
}
} else {
@@ -148,7 +160,7 @@
+ headerValue, e);
}
if(realContentLength > 0){
- response.setIntHeader("Content-Length", realContentLength);
+ response.setContentLength(realContentLength);
}
if (null != contentType) {
response.setContentType(this.contentType);
@@ -307,4 +319,16 @@
out.flush();
}
}
+
+ public int getContentLength() {
+ if (contentLength == null) {
+ throw new IllegalStateException("Content length hasn't been set yet!");
+ }
+
+ return contentLength.intValue();
+ }
+
+ public void setContentLength(int contentLength) {
+ this.contentLength = contentLength;
+ }
}
Modified: trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockFacesResourceContext.java
===================================================================
--- trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockFacesResourceContext.java 2008-09-12 14:00:52 UTC (rev 10435)
+++ trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockFacesResourceContext.java 2008-09-12 14:02:57 UTC (rev 10436)
@@ -44,6 +44,7 @@
//used to encode headers properly
private MockHttpServletResponse mockResponse = new MockHttpServletResponse();
private Set headerSet = new LinkedHashSet();
+ private Integer contentLength;
public void setContentType(String contentType) {
this.contentType = contentType;
@@ -53,6 +54,18 @@
return contentType;
}
+ public void setContentLength(int contentLength) {
+ this.contentLength = contentLength;
+ }
+
+ public int getContentLength() {
+ if (contentLength == null) {
+ throw new IllegalStateException("Content length hasn't been set yet!");
+ }
+
+ return contentLength.intValue();
+ }
+
public void setDateHeader(String name, long value) {
headerSet.add(name);
mockResponse.setDateHeader(name, value);
Modified: trunk/framework/test/src/test/java/org/ajax4jsf/resource/InternetResourceServiceTestCase.java
===================================================================
--- trunk/framework/test/src/test/java/org/ajax4jsf/resource/InternetResourceServiceTestCase.java 2008-09-12 14:00:52 UTC (rev 10435)
+++ trunk/framework/test/src/test/java/org/ajax4jsf/resource/InternetResourceServiceTestCase.java 2008-09-12 14:02:57 UTC (rev 10436)
@@ -24,6 +24,7 @@
import java.io.IOException;
import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+import org.apache.shale.test.mock.MockHttpServletResponse;
import org.apache.shale.test.mock.MockServletOutputStream;
/**
@@ -44,6 +45,19 @@
*/
public void setUp() throws Exception {
super.setUp();
+
+ //TODO fix when setContentLength in shale-test will start function
+ // https://issues.apache.org/struts/browse/SHALE-495
+ this.response = new MockHttpServletResponse() {
+
+ public int getContentLength() {
+ return Integer.parseInt(getHeader("Content-Length"));
+ }
+
+ public void setContentLength(int length) {
+ addIntHeader("Content-Length", length);
+ }
+ };
}
/* (non-Javadoc)
Modified: trunk/framework/test/src/test/java/org/ajax4jsf/resource/ResourceServiceThreadsTestCase.java
===================================================================
--- trunk/framework/test/src/test/java/org/ajax4jsf/resource/ResourceServiceThreadsTestCase.java 2008-09-12 14:00:52 UTC (rev 10435)
+++ trunk/framework/test/src/test/java/org/ajax4jsf/resource/ResourceServiceThreadsTestCase.java 2008-09-12 14:02:57 UTC (rev 10436)
@@ -96,6 +96,16 @@
format.setTimeZone(TimeZone.getTimeZone("GMT"));
addHeader(name, format.format(new Date(value)));
}
+
+ //TODO fix when setContentLength in shale-test will start function
+ // https://issues.apache.org/struts/browse/SHALE-495
+ public int getContentLength() {
+ return Integer.parseInt(getHeader("Content-Length"));
+ }
+
+ public void setContentLength(int length) {
+ addIntHeader("Content-Length", length);
+ }
};
MockHttpServletRequest req = new MockHttpServletRequest(session);
16 years, 3 months
JBoss Rich Faces SVN: r10435 - trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid.
by richfaces-svn-commits@lists.jboss.org
Author: dmorozov
Date: 2008-09-12 10:00:52 -0400 (Fri, 12 Sep 2008)
New Revision: 10435
Modified:
trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js
Log:
1. Fix selection that dowesn't work at all - it loosed after scrolling
2. Fix unlimited loop jumping of SDT after scrolling under FF3
Modified: trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js
===================================================================
--- trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js 2008-09-12 12:51:43 UTC (rev 10434)
+++ trunk/ui/scrollableDataTable/src/main/javascript/ClientUI/controls/grid/GridBody.js 2008-09-12 14:00:52 UTC (rev 10435)
@@ -6,7 +6,6 @@
ClientUILib.declarePackage("ClientUI.controls.grid.GridBody");
ClientUILib.requireClass("ClientUI.common.box.Box");
-//ClientUILib.requireClass("ClientUI.controls.grid.DataCash");
/*
* GridHeader.js - Grid control header pane
@@ -120,14 +119,6 @@
this.parseTemplate(this.templFrozen.getElement(), this.templNormal.getElement());
- // init cash with initial data
- /*var cash = this.getCash();
- var frows = this.templFrozen.getElement().rows;
- var nrows = this.templNormal.getElement().rows;
- var count = this.rowsCount;
- for(var i=0; i<count; i++) {
- cash.setRow(i, {f: frows[i].innerHTML, n: nrows[i].innerHTML});
- }*/
var gridId = this.grid.getElement().id;
this.fTable = $(gridId + ":f")
this.nTable = $(gridId + ":n")
@@ -139,9 +130,6 @@
if(templNormal && templNormal.rows && templNormal.rows.length != 0) {
this.rowsCount = Math.min(templNormal.rows.length, this.grid.dataModel.getCount());
- //if(ClientUILib.isGecko) {
- // this.defaultRowHeight -= this.getBorderWidth("tb") + this.getPadding("tb");
- //}
this.helpObj = new ClientUI.common.box.Box(templFrozen, null, true);
this.countToLoad = 0;
this.startRow = 0;
@@ -170,9 +158,6 @@
this.defaultRowHeight = defHeight;
}
}
- //if(ClientUILib.isGecko) {
- // this.defaultRowHeight -= this.getBorderWidth("tb") + this.getPadding("tb");
- //}
},
updateLayout: function($super) {
if(!this.controlCreated || !this.grid.controlCreated) {
@@ -393,9 +378,7 @@
ClientUILib.log(ClientUILogger.WARNING, "Start loading: index: " + startIndex + ", and startRow: " + startRowIndx + ", and count: " + countToLoad);
this.currRange = range;
this.currentPos = task.pos;
- this.scrollInput.value = task.pos + "," + this.currRange.start + "," + this.currRange.end+ "," + firstIndex;
-
if (this.grid.options.hideWhenScrolling) {
this.container.hide();
}
@@ -406,28 +389,16 @@
startRow: startRowIndx,
switchType: switchType
};
- var opt = {
- index: options.index,
- count: options.count,
- startRow: options.startRow,
- switchType: options.switchType
- };
- //options = this.processCashedValues(options);
- if(options.count > 0) {
- // Make timer to handle quick clicks on scrollbar arrows
- setTimeout(function() {
-
- // 4. start data loading
- this.updateInterval = screen.updateInterval;
- screen.updateInterval = 1000;
-
- this.grid.dataModel.loadRows(options);
- }.bind(this), 10);
- }
- /*else {
- this.invalidate(opt);
- this.updateStarted = false;
- }*/
+
+ // Make timer to handle quick clicks on scrollbar arrows
+ setTimeout(function() {
+
+ // 4. start data loading
+ this.updateInterval = screen.updateInterval;
+ screen.updateInterval = 1000;
+
+ this.grid.dataModel.loadRows(options);
+ }.bind(this), 10);
}
else {
this.updateStarted = false;
@@ -447,7 +418,6 @@
rearrangeRows: function(options, updateCash, showContainer) {
var frozenTbl = this.templFrozen.getElement();
var normalTbl = this.templNormal.getElement();
- //var cash = this.getCash();
if(options.switchType === 0) {
var visibleRowPos = this.defaultRowHeight * options.index;
@@ -455,17 +425,6 @@
if(showContainer) this._showContainer();
this.templFrozen.moveToY(visibleRowPos);
this.templNormal.moveToY(visibleRowPos);
-
- /*if(updateCash) {
- var frows = frozenTbl.rows;
- var nrows = normalTbl.rows;
- var count = frows.length;
- var index = options.index;
- for(var i=0; i<count; i++) {
- cash.setRow(index+i, {f: frows[i].innerHTML, n: nrows[i].innerHTML});
- }
- }*/
-
this.forceReRender();
}
else if(options.switchType === 1 || options.switchType === 2) {
@@ -528,15 +487,6 @@
this.templNormal.moveToY(visibleRowPos);
}
else {
- /*if(updateCash) {
- var frows = frozenTbl.rows;
- var nrows = normalTbl.rows;
- var count = frows.length;
- var index = options.index;
- for(var i=0; i<count; i++) {
- cash.setRow(index+i, {f: frows[i].innerHTML, n: nrows[i].innerHTML});
- }
- }*/
var visibleRowPos = this.currRange.start * this.defaultRowHeight;
if(showContainer) this._showContainer();
this.templFrozen.moveToY(visibleRowPos);
@@ -558,65 +508,7 @@
this.rearrangeRows(options, true, true);
this.container.show();
this.updateStarted = false;
- /*if(this.processedPos != this.currentPos) {
- this.currentPos = this.processedPos;
- setTimeout(function (){
- this.pendedUpdate();
- }.bind(this), this.grid.dataModel.getRequestDelay());
- }*/
},
- /*pendedUpdate: function() {
- if(this.processedPos != this.currentPos) {
- this.currentPos = this.processedPos;
- setTimeout(function (){
- this.pendedUpdate();
- }.bind(this), this.grid.dataModel.getRequestDelay());
- }
- else {
- this.adjustDataPosition(this.processedPos);
- }
- },*/
- /*getCash: function() {
- if(!this.cash) {
- this.cash = new ClientUI.controls.grid.DataCash(this.grid.dataModel.getCount());
- }
- return this.cash;
- },
- _restoreFromCash: function(options) {
- var count = options.count;
- var index = options.index;
- var startRow = options.startRow;
- var cash = this.getCash();
- var frows = this.templFrozen.getElement().rows;
- var nrows = this.templNormal.getElement().rows;
-
- var row, rowU, i=0;
- var rowC = cash.getRow(index);
- do {
- row = frows[startRow];
- rowU = row.cloneNode(true);
- rowU.innerHTML = rowC.f;
- row.parentNode.replaceChild(rowU, row);
-
- row = nrows[startRow];
- rowU = row.cloneNode(true);
- rowU.innerHTML = rowC.n;
- row.parentNode.replaceChild(rowU, row);
-
- i++;
- startRow++;
- if(startRow >= this.rowsCount) startRow = 0;
- rowC = cash.getRow(index + i);
- } while(i<count && rowC);
-
- setTimeout(function () {
- this.rearrangeRows(options);
- this.container.show();
- this.splash.hide();
- this.updateStarted = false;
-
- }.bind(this), 10);
- },*/
processCashedValues: function(options) {
return options;
@@ -728,7 +620,7 @@
updateScrollState: function() {
this.scrollInput = $(this.gridId + ":si");
var value = this.scrollInput.value;
- if (value !='' && this.currRange.end >= Number(value.split(',')[2])) {
+ if (value !='' && this.sizeBox.getHeight() < Number(value.split(',')[0])) {
this.restoreScrollState();
}
this.scrollInput.value = this.currentPos + "," + this.currRange.start + "," + this.currRange.end+ "," + this._getRowIndex(this.templNormal.getElement().rows[0].id);
@@ -741,7 +633,7 @@
this.currentPos = values[0];
this.currRange.start = values[1];
this.currRange.end = values[2];
- this.scrollBox.getElement().scrollTop = values[0];
+ this.scrollBox.getElement().scrollTop = this.sizeBox.getHeight(); // values[0];
var visibleRowPos = this.currRange.start * this.defaultRowHeight;
this._showContainer();
this.templFrozen.moveToY(visibleRowPos);
16 years, 3 months
JBoss Rich Faces SVN: r10434 - trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: pyaschenko
Date: 2008-09-12 08:51:43 -0400 (Fri, 12 Sep 2008)
New Revision: 10434
Modified:
trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js
Log:
https://jira.jboss.org/jira/browse/RF-4339
part 3
Modified: trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js
===================================================================
--- trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js 2008-09-12 12:48:26 UTC (rev 10433)
+++ trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js 2008-09-12 12:51:43 UTC (rev 10434)
@@ -2,31 +2,38 @@
if (!Richfaces.Selection) Richfaces.Selection = {};
Richfaces.Selection.getStart = function(element)
{
- if (element.createTextRange) {
+ if (element.setSelectionRange) {
+ return element.selectionStart;
+ } else if (document.selection && document.selection.createRange) {
var r = document.selection.createRange().duplicate();
r.moveEnd('character', element.value.length);
if (r.text == '') return element.value.length;
return element.value.lastIndexOf(r.text);
- } else return element.selectionStart;
+ }
}
Richfaces.Selection.getEnd = function(element)
{
- if (element.createTextRange) {
+ if (element.setSelectionRange) {
+ return element.selectionEnd;
+ } else if (document.selection && document.selection.createRange) {
var r = document.selection.createRange().duplicate();
r.moveStart('character', -element.value.length);
return r.text.length;
- } else return element.selectionEnd;
+ }
}
-Richfaces.Selection.setCaretTo = function (element, pos) {
- if(element.createTextRange) {
- var range = element.createTextRange();
- range.move("character", pos);
- range.select();
- } else if(element.selectionStart) {
- element.focus();
- element.setSelectionRange(pos, pos);
- }
+Richfaces.Selection.setCaretTo = function (element, pos)
+{
+ if(element.setSelectionRange) {
+ element.focus();
+ element.setSelectionRange(pos,pos);
+ } else if (element.createTextRange){
+ var range = element.createTextRange();
+ range.collapse(true);
+ range.moveEnd('character', pos);
+ range.moveStart('character', pos);
+ range.select();
+ }
}
var Suggestion = {};
@@ -858,6 +865,10 @@
if (whitespace) endStr = whitespace[0] + endStr;
this.element.value = startStr + value + endStr;
Richfaces.Selection.setCaretTo(this.element, (startStr + value).length);
+ //alert(Richfaces.Selection.getEnd(this.element));
+ // partial fix for new bag with keyDown insertion
+ // TODO: create & fix bug
+ this.endPosition = this.startPosition + value.length;
if (this.options.usingSuggestObjects)
{
16 years, 3 months
JBoss Rich Faces SVN: r10433 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: atsebro
Date: 2008-09-12 08:48:26 -0400 (Fri, 12 Sep 2008)
New Revision: 10433
Modified:
trunk/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml
Log:
RF-3903: Documenting-Validator tags
Modified: trunk/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml 2008-09-12 12:46:55 UTC (rev 10432)
+++ trunk/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml 2008-09-12 12:48:26 UTC (rev 10433)
@@ -231,9 +231,12 @@
</section>
<section>
- <title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/ajaxValidator.jsf?c=a...">
- Here</ulink> you can see an example of <emphasis role="bold"><property><rich:ajaxValidator></property>
+ <title>Relevant Resources Links</title>
+ <para><ulink
+ url="http://livedemo.exadel.com/richfaces-demo/richfaces/ajaxValidator.jsf?c=a..."
+ > Here</ulink> you can see an example of <emphasis
+ role="bold">
+ <property><rich:ajaxValidator></property>
</emphasis> usage and sources for the given example. </para>
</section>
16 years, 3 months
JBoss Rich Faces SVN: r10432 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2008-09-12 08:46:55 -0400 (Fri, 12 Sep 2008)
New Revision: 10432
Modified:
trunk/docs/userguide/en/src/main/docbook/included/beanValidator.xml
Log:
Modified: trunk/docs/userguide/en/src/main/docbook/included/beanValidator.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/beanValidator.xml 2008-09-12 12:46:26 UTC (rev 10431)
+++ trunk/docs/userguide/en/src/main/docbook/included/beanValidator.xml 2008-09-12 12:46:55 UTC (rev 10432)
@@ -80,8 +80,8 @@
HtmlbeanValidator mybeanValidator= new HtmlbeanValidator();
...
]]></programlisting>
+ </section>
-
<!-- Start Details of Usage-->
<section>
<title>Details of Usage</title>
@@ -184,6 +184,14 @@
</emphasis>which displays validation messages about
validation errors.</para>
</section>
+
+
+
+ <section>
+ <title>Relevant Resources Links</title>
+ <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/beanValidator.jsf?c=b...">
+ Here</ulink> you can see an example of <emphasis role="bold"><property><rich:beanValidator></property>
+ </emphasis> usage and sources for the given example. </para>
</section>
</section>
16 years, 3 months
JBoss Rich Faces SVN: r10431 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2008-09-12 08:46:26 -0400 (Fri, 12 Sep 2008)
New Revision: 10431
Modified:
trunk/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml
Log:
Modified: trunk/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml 2008-09-12 12:39:03 UTC (rev 10430)
+++ trunk/docs/userguide/en/src/main/docbook/included/ajaxValidator.xml 2008-09-12 12:46:26 UTC (rev 10431)
@@ -230,5 +230,11 @@
</section>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/ajaxValidator.jsf?c=a...">
+ Here</ulink> you can see an example of <emphasis role="bold"><property><rich:ajaxValidator></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
</section>
16 years, 3 months
JBoss Rich Faces SVN: r10430 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2008-09-12 08:39:03 -0400 (Fri, 12 Sep 2008)
New Revision: 10430
Modified:
trunk/docs/userguide/en/src/main/docbook/included/graphValidator.xml
Log:
Modified: trunk/docs/userguide/en/src/main/docbook/included/graphValidator.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/graphValidator.xml 2008-09-12 11:43:39 UTC (rev 10429)
+++ trunk/docs/userguide/en/src/main/docbook/included/graphValidator.xml 2008-09-12 12:39:03 UTC (rev 10430)
@@ -133,14 +133,48 @@
<programlisting role="XML"><![CDATA[...
-<rich:graphValidator value="#{dayStatistics}">
- <h:outputText value="#{pt.title}" />
- <rich:inputNumberSpinne minValue="0" maxValue="24" value="#{pt.time}" id="time">
- </rich:inputNumberSpinner>
- <rich:message for="time" />
+<rich:graphValidator summary="Invalid values: " value="#{dayStatistics}">
+<a4j:repeat value="#{dayStatistics.dayPasstimes}" var="pt" id="table">
+<h:outputText value="#{pt.title}" />
+<rich:inputNumberSpinner minValue="0" maxValue="24" value="#{pt.time}" id="time">
+</rich:inputNumberSpinner>
+<rich:message for="time" />
+</a4j:repeat>
</rich:graphValidator>
...
]]></programlisting>
+<para>Hence, the given above code will provide the functionality that is illustrated on the images below.</para>
+
+ <figure>
+ <title>"Games" field did not pass validation</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/graphValidator11.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>As you can see from the picture the "Games" field did not pass validation, as <emphasis role="bold"><property><rich:graphValidator></property>
+ </emphasis> can be used to perform validation of a single input item.
+ </para>
+
+ <figure>
+ <title>Total sum of all input values is incorrect</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/graphValidator12.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+
+ <para> The figure above shows that the entered data was revalidated after all fields were completed, and the data did not pass revalidation since the total sum was incorrect. </para>
+ <section>
+ <title>Relevant Resources Links</title>
+ <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/graphValidator.jsf?c=...">
+ Here</ulink> you can see an example of <emphasis role="bold"><property><rich:graphValidator></property>
+ </emphasis> usage and sources for the given example. </para>
+ </section>
+
</section>
16 years, 3 months
JBoss Rich Faces SVN: r10429 - trunk/test-applications/jsp/src/main/webapp/DataTable.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-09-12 07:43:39 -0400 (Fri, 12 Sep 2008)
New Revision: 10429
Modified:
trunk/test-applications/jsp/src/main/webapp/DataTable/DataTable.jsp
Log:
mark initial and target node.
Modified: trunk/test-applications/jsp/src/main/webapp/DataTable/DataTable.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/DataTable/DataTable.jsp 2008-09-12 11:23:31 UTC (rev 10428)
+++ trunk/test-applications/jsp/src/main/webapp/DataTable/DataTable.jsp 2008-09-12 11:43:39 UTC (rev 10429)
@@ -40,7 +40,7 @@
<rich:dataTable id="dataTableID" binding="#{dataTable.htmlDataTable}" var="dataTableID" value="#{dataTable.mounths}" rowKeyVar="key"
captionClass="#{style.captionClass}" rowClasses="#{style.rowClasses}" headerClass="#{style.headerClass}" footerClass="#{style.footerClass}" styleClass="#{style.styleClass}" captionStyle="#{style.captionStyle}" columnClasses="#{style.columnClasses}"
- onRowClick="#{event.onRowClick};alert('row #{key}');" rendered="#{dataTable.rendered}"
+ onRowClick="#{event.onRowClick}" rendered="#{dataTable.rendered}"
align="#{dataTable.align}" bgcolor="red" border="#{dataTable.border}" columnsWidth="#{dataTable.columnsWidth}"
width="#{dataTable.width}" title="DataTableTite" onRowDblClick="#{event.onRowDblClick}" onRowMouseDown="#{event.onRowMouseDown}"
onRowMouseMove="#{event.onRowMouseMove}" onRowMouseOut="#{event.onRowMouseOut}" onRowMouseOver="#{event.onRowMouseOver}"
@@ -48,6 +48,7 @@
onkeypress="#{event.onkeypress}" onkeyup="#{event.onkeyup}" onmousedown="#{event.onmousedown}"
onmousemove="#{event.onmousemove}" onmouseout="#{event.onmouseout}" onmouseover="#{event.onmouseover}"
onmouseup="#{event.onmouseup}">
+ <a4j:support event="onRowDblClick" action="#{controller.rfAction}"></a4j:support>
<f:facet name="caption">
<h:outputText value="caption facet" />
</f:facet>
@@ -103,6 +104,7 @@
acceptedTypes="treeNode" dragType="treeNode" var="item">
<rich:dndParam name="treeParam" value="rightTree" />
</rich:tree>
+ <div>column with the 1st tree</div>
</rich:column>
<rich:subTable id="detail" var="detail" value="#{dataTableID.detail}" rowKeyVar="subRowKey"
columnClasses="#{style.columnClassesA}" footerClass="#{style.footerClassA}" headerClass="#{style.headerClassA}" rowClasses="#{style.rowClassesA}" onclick="#{event.onclick}"
@@ -127,7 +129,8 @@
var="item" >
<rich:dndParam name="treeParam" value="leftTree" />
- </rich:tree>
+ </rich:tree>
+ <div>column with the 2nd tree</div>
</rich:column>
<rich:column id="qty" rendered="#{dataTable.r2rendered}">
<h:outputText value="#{detail.qty}" />
16 years, 3 months