JBoss Rich Faces SVN: r9894 - trunk/test-applications/jsp/src/main/java/util/converter.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-08-04 10:46:38 -0400 (Mon, 04 Aug 2008)
New Revision: 9894
Added:
trunk/test-applications/jsp/src/main/java/util/converter/DateValueConverter.java
Log:
Added: trunk/test-applications/jsp/src/main/java/util/converter/DateValueConverter.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/util/converter/DateValueConverter.java (rev 0)
+++ trunk/test-applications/jsp/src/main/java/util/converter/DateValueConverter.java 2008-08-04 14:46:38 UTC (rev 9894)
@@ -0,0 +1,27 @@
+package util.converter;
+
+import java.util.Calendar;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+
+public class DateValueConverter implements Converter {
+
+ public Object getAsObject(FacesContext context, UIComponent component,
+ String value) throws ConverterException {
+ String[] fields = new String[3];
+ fields = value.split("/");
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Integer.parseInt(fields[2]), Integer.parseInt(fields[0]), Integer.parseInt(fields[1]));
+ return calendar;
+ }
+
+ public String getAsString(FacesContext context, UIComponent component,
+ Object value) throws ConverterException {
+ Calendar calendar = (Calendar)value;
+ return calendar.get(calendar.MONTH) + "/" + calendar.get(calendar.DATE) + "/" + calendar.get(calendar.YEAR);
+ }
+
+}
16 years, 7 months
JBoss Rich Faces SVN: r9893 - trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable.
by richfaces-svn-commits@lists.jboss.org
Author: pkawiak
Date: 2008-08-04 10:40:46 -0400 (Mon, 04 Aug 2008)
New Revision: 9893
Modified:
trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js
Log:
opera bugfix
Modified: trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js 2008-08-04 13:55:31 UTC (rev 9892)
+++ trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js 2008-08-04 14:40:46 UTC (rev 9893)
@@ -204,7 +204,11 @@
if ((columnNumber < this.getColumnsNumber()) && (columnNumber >=0)) {
var col = this.getColumns()[columnNumber];
if (col.offsetWidth != null) {
- return col.offsetWidth;
+ if (ClientUILib.isOpera) {
+ return parseInt(col.width);
+ }else{
+ return col.offsetWidth;
+ }
}else{
return parseInt(col.width);
}
@@ -351,24 +355,16 @@
this.validateColumnsWidth(cols,excessWidth);
};
if (ClientUILib.isOpera) {
- var _stl = headerChildren[0].getStyles().borderRightWidth;
- _stl = parseInt(_stl.replace(/"px"/,""))*2;
- var newWidth = mainDivWidth - visibleHeaderWidth - (this.header.getColumnsNumber()-1)*_stl;
- cols[columnsNumber-1].width = null;
- newWidth -= this.getScrollbarWidth()-1;
- if (newWidth <= 0) {
- newWidth = 1;
- }
- cols[cols.length-1].width = null;
+ var _stl = 2;
var cols = this.header.getColumns();
var columnsNumber = this.header.getColumnsNumber();
for (var i=0; i<columnsNumber-1; i++) {
+ ClientUILib.log(ClientUILogger.INFO, "this.getColumnWidth(i) "+this.getColumnWidth(i));
cols[i].width = this.getColumnWidth(i) - _stl;
}
- }else{
- cols[columnsNumber-1].width = null;
- cols[cols.length-1].width = null;
- }
+ };
+ cols[columnsNumber-1].width = null;
+ cols[cols.length-1].width = null;
var newHeight = mainDivHeight - header.getHeight() - footerHeight - 2;
newHeight -= this.header.getCaptionHeight();
scrollingDiv.setStyle('height:'+ newHeight +'px;');
16 years, 7 months
JBoss Rich Faces SVN: r9892 - trunk/framework/impl/src/main/java/org/ajax4jsf/context.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2008-08-04 09:55:31 -0400 (Mon, 04 Aug 2008)
New Revision: 9892
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java
Log:
https://jira.jboss.org/jira/browse/RF-4014
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java 2008-08-04 13:52:46 UTC (rev 9891)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java 2008-08-04 13:55:31 UTC (rev 9892)
@@ -475,7 +475,9 @@
} catch (IOException e) {
throw new FacesException(e.getLocalizedMessage(), e);
} finally {
- context.setResponseWriter(oldResponseWriter);
+ if (oldResponseWriter != null) {
+ context.setResponseWriter(oldResponseWriter);
+ }
}
}
}
16 years, 7 months
JBoss Rich Faces SVN: r9891 - in trunk/sandbox/ui/extendedDataTable/src/main: resources/org/richfaces/renderkit/html/css and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: pkawiak
Date: 2008-08-04 09:52:46 -0400 (Mon, 04 Aug 2008)
New Revision: 9891
Modified:
trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js
trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js
trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/css/extendedDataTable.xcss
Log:
Styles change
Modified: trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js 2008-08-04 13:49:38 UTC (rev 9890)
+++ trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTable.js 2008-08-04 13:52:46 UTC (rev 9891)
@@ -203,7 +203,7 @@
getColumnWidth: function(columnNumber) {
if ((columnNumber < this.getColumnsNumber()) && (columnNumber >=0)) {
var col = this.getColumns()[columnNumber];
- if (col.offsetWidth) {
+ if (col.offsetWidth != null) {
return col.offsetWidth;
}else{
return parseInt(col.width);
Modified: trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js 2008-08-04 13:49:38 UTC (rev 9890)
+++ trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js 2008-08-04 13:52:46 UTC (rev 9891)
@@ -123,10 +123,11 @@
getColumnWidth: function(columnNumber) {
if ((columnNumber < this.getColumnsNumber()) && (columnNumber >=0)) {
- var col = this.columnCells[columnNumber];
- if (col.offsetWidth) {
+ var col = this.getColumnCells()[columnNumber];
+ if (col.offsetWidth != null) {
return col.offsetWidth;
}else{
+ col = this.getColumns()[columnNumber];
return parseInt(col.width);
}
}else{
Modified: trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/css/extendedDataTable.xcss
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/css/extendedDataTable.xcss 2008-08-04 13:49:38 UTC (rev 9890)
+++ trunk/sandbox/ui/extendedDataTable/src/main/resources/org/richfaces/renderkit/html/css/extendedDataTable.xcss 2008-08-04 13:52:46 UTC (rev 9891)
@@ -120,6 +120,8 @@
background-color: #eeeeee;
border-bottom: 1px #c0c0c0 solid;
border-top: 1px #c0c0c0 solid;
+ font-family: Arial,Verdana,sans-serif;
+ font-size: 11px;
}
.extdt-group-image-expanded {
16 years, 7 months
JBoss Rich Faces SVN: r9890 - in trunk/sandbox/ui/extendedDataTable/src/main: javascript/ClientUI/controls/datatable and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: piotr.buda
Date: 2008-08-04 09:49:38 -0400 (Mon, 04 Aug 2008)
New Revision: 9890
Modified:
trunk/sandbox/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java
trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js
trunk/sandbox/ui/extendedDataTable/src/main/templates/org/richfaces/htmlExtendedDataTable.jspx
Log:
Some fixes (mainly table redrawing)
Modified: trunk/sandbox/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java 2008-08-04 13:33:56 UTC (rev 9889)
+++ trunk/sandbox/ui/extendedDataTable/src/main/java/org/richfaces/component/UIExtendedDataTable.java 2008-08-04 13:49:38 UTC (rev 9890)
@@ -224,7 +224,9 @@
String groupColId = getGroupingColumnId();
// try to add group column id as first
- //TODO nick - is it ok to change user's priorities collection here?
+ //TODO nick - is it ok to change user's priorities collection here?
+ //PBU it is used in grouping mode - grouping column must be sorted
+ //as first
if (priority.contains(groupColId)) {
priority.remove(groupColId);
}
Modified: trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js 2008-08-04 13:33:56 UTC (rev 9889)
+++ trunk/sandbox/ui/extendedDataTable/src/main/javascript/ClientUI/controls/datatable/ExtendedDataTableHeader.js 2008-08-04 13:49:38 UTC (rev 9890)
@@ -111,7 +111,7 @@
},
setColumnWidth: function(columnIndex, newWidth) {
- if (columnIndex >= this.getColumnsNumber) {
+ if (columnIndex >= this.getColumnsNumber()) {
return false;
}else{
if (!newWidth) {
@@ -227,7 +227,7 @@
this.maxDelta = this.getColumnWidth(this.getColumnsNumber()-1);
this.maxDelta -= this.extDt.getScrollbarWidth();
if (ClientUILib.isOpera) {
- this.maxDelt -= 1;
+ this.maxDelta -= 1;
};
this.minDelta = this.minColumnWidth - this.getColumnWidth(srcElement.columnIndex);
Event.observe(document, 'mousemove', this.eventSepMouseMove, true);
@@ -320,11 +320,13 @@
Event.stop(event);
}
},
- _redrawTable: function(table) {
- var tr = table.insertRow(0);
- var td = tr.insertCell(0);
- td.setAttribute("colspan", 5);
- td.innerHTML = "safari-must-have-something-inserted-to-redraw-table";
- table.deleteRow(tr);
+ _redrawTable: function(table) {
+ table.hide();
+ var tr = table.insertRow(0);
+ var td = tr.insertCell(0);
+ td.setAttribute("colspan", 5);
+ td.innerHTML = "safari-must-have-something-inserted-to-redraw-table";
+ table.deleteRow(tr);
+ table.show();
}
});
\ No newline at end of file
Modified: trunk/sandbox/ui/extendedDataTable/src/main/templates/org/richfaces/htmlExtendedDataTable.jspx
===================================================================
--- trunk/sandbox/ui/extendedDataTable/src/main/templates/org/richfaces/htmlExtendedDataTable.jspx 2008-08-04 13:33:56 UTC (rev 9889)
+++ trunk/sandbox/ui/extendedDataTable/src/main/templates/org/richfaces/htmlExtendedDataTable.jspx 2008-08-04 13:49:38 UTC (rev 9890)
@@ -87,8 +87,8 @@
<colgroup id="#{clientId}:colgroup:header">
<f:call name="encodeColumns"/>
</colgroup>
+ <f:call name="encodeCaption" />
<f:call name="encodeHeader"/>
- <f:call name="encodeCaption"/>
<tbody>
<tr>
<td colspan="#{columnsCount}" style="padding: 0px;">
16 years, 7 months
JBoss Rich Faces SVN: r9889 - trunk/framework/api/src/main/java/org/ajax4jsf/renderkit.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2008-08-04 09:33:56 -0400 (Mon, 04 Aug 2008)
New Revision: 9889
Added:
trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/ProducerContext.java
Modified:
trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/HeaderResourceProducer2.java
Log:
https://jira.jboss.org/jira/browse/RF-4014
Modified: trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/HeaderResourceProducer2.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/HeaderResourceProducer2.java 2008-08-04 13:33:51 UTC (rev 9888)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/HeaderResourceProducer2.java 2008-08-04 13:33:56 UTC (rev 9889)
@@ -38,6 +38,5 @@
*/
public interface HeaderResourceProducer2 {
- public void encodeToHead(FacesContext context, UIComponent component,
- boolean processStyles, boolean processScripts) throws IOException;
+ public void encodeToHead(FacesContext context, UIComponent component, ProducerContext pc) throws IOException;
}
Added: trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/ProducerContext.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/ProducerContext.java (rev 0)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/renderkit/ProducerContext.java 2008-08-04 13:33:56 UTC (rev 9889)
@@ -0,0 +1,35 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - 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.ajax4jsf.renderkit;
+
+
+/**
+ * @author Nick Belaevski
+ * @since 3.2.2
+ */
+
+public interface ProducerContext {
+
+ public boolean isProcessStyles();
+
+ public boolean isProcessScripts();
+}
16 years, 7 months
JBoss Rich Faces SVN: r9888 - in trunk/framework/impl/src/main: java/org/ajax4jsf/context and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2008-08-04 09:33:51 -0400 (Mon, 04 Aug 2008)
New Revision: 9888
Added:
trunk/framework/impl/src/main/java/org/ajax4jsf/context/ResponseWriterContentHandler.java
trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/ProducerContextImpl.java
Removed:
trunk/framework/impl/src/main/java/org/ajax4jsf/context/RenderPhaseViewResourcesVisitor.java
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/application/AjaxViewHandler.java
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/HeaderResourcesRendererBase.java
trunk/framework/impl/src/main/resources/META-INF/services/org.richfaces.component.RenderPhaseComponentVisitor
Log:
https://jira.jboss.org/jira/browse/RF-4014
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/application/AjaxViewHandler.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/application/AjaxViewHandler.java 2008-08-04 13:25:50 UTC (rev 9887)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/application/AjaxViewHandler.java 2008-08-04 13:33:51 UTC (rev 9888)
@@ -24,9 +24,13 @@
import java.io.IOException;
import java.util.Map;
+import javax.el.ExpressionFactory;
+import javax.el.ValueExpression;
import javax.faces.FacesException;
+import javax.faces.application.Application;
import javax.faces.application.ViewHandler;
import javax.faces.component.UIViewRoot;
+import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
@@ -34,9 +38,11 @@
import org.ajax4jsf.component.AjaxViewRoot;
import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.context.ViewIdHolder;
+import org.ajax4jsf.context.ViewResources;
import org.ajax4jsf.renderkit.RendererUtils.HTML;
import org.ajax4jsf.resource.InternetResource;
import org.ajax4jsf.resource.InternetResourceBuilder;
+import org.ajax4jsf.util.ELUtils;
import org.ajax4jsf.webapp.BaseFilter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -50,6 +56,8 @@
*/
public class AjaxViewHandler extends ViewHandlerWrapper {
+ public static final String RESOURCES_PROCESSED = "org.ajax4jsf.framework.HEADER_PROCESSED";
+
public static final String STATE_MARKER_KEY = "org.ajax4jsf.view.state";
public static final String SERIALIZED_STATE_KEY = "org.ajax4jsf.view.serializedstate";
@@ -60,6 +68,9 @@
public static final String VIEW_ID_KEY = "org.ajax4jsf.VIEW_ID";
+ private static final String INIT_PARAMETER_PREFIX = "_init_parameter_";
+ private static final Object NULL = new Object();
+
/**
* @param parent
*/
@@ -198,6 +209,43 @@
Map<String,Object> requestMap = context.getExternalContext().getRequestMap();
if (null != requestMap.get(BaseFilter.RESPONSE_WRAPPER_ATTRIBUTE)) {
+ if (!Boolean.TRUE.equals(requestMap.get(RESOURCES_PROCESSED))) {
+
+ ViewResources viewResources = new ViewResources();
+
+ viewResources.setExtendedSkinningAllowed(true);
+ viewResources.setScriptStrategy(getInitParameterValue(context,
+ InternetResourceBuilder.LOAD_SCRIPT_STRATEGY_PARAM));
+
+ boolean useStdControlsSkinning = false;
+
+ String stdControlsSkinning = getInitParameterValue(context, InternetResourceBuilder.STD_CONTROLS_SKINNING_PARAM);
+ if (stdControlsSkinning != null) {
+ useStdControlsSkinning = InternetResourceBuilder.ENABLE.equals(stdControlsSkinning);
+ }
+
+ viewResources.setUseStdControlsSkinning(useStdControlsSkinning);
+
+ boolean useStdControlsSkinningClasses = true;
+
+ String stdControlsSkinningClasses = getInitParameterValue(context, InternetResourceBuilder.STD_CONTROLS_SKINNING_CLASSES_PARAM);
+ if (stdControlsSkinningClasses != null) {
+ useStdControlsSkinningClasses = InternetResourceBuilder.ENABLE.equals(stdControlsSkinningClasses);
+ }
+
+ viewResources.setUseStdControlsSkinningClasses(useStdControlsSkinningClasses);
+
+ viewResources.setStyleStrategy(getInitParameterValue(context,
+ InternetResourceBuilder.LOAD_STYLE_STRATEGY_PARAM));
+
+
+ viewResources.processHeadResources(context);
+
+ requestMap.put(AjaxContext.HEAD_EVENTS_PARAMETER, viewResources.getHeadEvents());
+
+ // Mark as processed.
+ requestMap.put(RESOURCES_PROCESSED, Boolean.TRUE);
+ }
// Save viewId for a parser selection
requestMap.put(AjaxViewHandler.VIEW_ID_KEY, context.getViewRoot().getViewId());
}
@@ -215,4 +263,55 @@
ajaxRoot.broadcastAjaxEvents(context);
}
+ private static String getInitParameterValue(FacesContext context, String parameterName) {
+
+ String key = INIT_PARAMETER_PREFIX + parameterName;
+
+ ExternalContext externalContext = context.getExternalContext();
+ Map<String, Object> applicationMap = externalContext.getApplicationMap();
+ Object mutex = externalContext.getRequest();
+ Object parameterValue = null;
+
+ synchronized (mutex) {
+ parameterValue = applicationMap.get(key);
+
+ if (parameterValue == null) {
+
+ String initParameter = externalContext.getInitParameter(parameterName);
+ if (initParameter != null) {
+
+ if (ELUtils.isValueReference(initParameter)) {
+ Application application = context.getApplication();
+ ExpressionFactory expressionFactory = application.getExpressionFactory();
+
+ parameterValue = expressionFactory.createValueExpression(context.getELContext(),
+ initParameter,
+ String.class);
+ } else {
+ parameterValue = initParameter;
+ }
+
+ } else {
+ parameterValue = NULL;
+ }
+
+ applicationMap.put(key, parameterValue);
+ }
+ }
+
+ return evaluate(context, parameterValue);
+ }
+
+ private static String evaluate(FacesContext context, Object parameterValue) {
+ if (parameterValue == NULL || parameterValue == null) {
+ return null;
+ } else if (parameterValue instanceof ValueExpression) {
+ ValueExpression expression = (ValueExpression) parameterValue;
+
+ return (String) expression.getValue(context.getELContext());
+ } else {
+ return parameterValue.toString();
+ }
+ }
+
}
Deleted: trunk/framework/impl/src/main/java/org/ajax4jsf/context/RenderPhaseViewResourcesVisitor.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/context/RenderPhaseViewResourcesVisitor.java 2008-08-04 13:25:50 UTC (rev 9887)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/context/RenderPhaseViewResourcesVisitor.java 2008-08-04 13:33:51 UTC (rev 9888)
@@ -1,631 +0,0 @@
-/**
- *
- */
-package org.ajax4jsf.context;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.el.ExpressionFactory;
-import javax.el.ValueExpression;
-import javax.faces.FacesException;
-import javax.faces.FactoryFinder;
-import javax.faces.application.Application;
-import javax.faces.component.UIComponent;
-import javax.faces.context.ExternalContext;
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
-import javax.faces.event.PhaseEvent;
-import javax.faces.render.RenderKit;
-import javax.faces.render.RenderKitFactory;
-import javax.faces.render.Renderer;
-
-import org.ajax4jsf.io.SAXResponseWriter;
-import org.ajax4jsf.renderkit.HeaderResourceProducer;
-import org.ajax4jsf.renderkit.HeaderResourceProducer2;
-import org.ajax4jsf.renderkit.UserResourceRenderer;
-import org.ajax4jsf.renderkit.UserResourceRenderer2;
-import org.ajax4jsf.renderkit.RendererUtils.HTML;
-import org.ajax4jsf.resource.InternetResource;
-import org.ajax4jsf.resource.InternetResourceBuilder;
-import org.ajax4jsf.resource.ResourceNotFoundException;
-import org.ajax4jsf.resource.ResourceRenderer;
-import org.ajax4jsf.resource.URIInternetResource;
-import org.ajax4jsf.util.ELUtils;
-import org.ajax4jsf.webapp.BaseFilter;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.richfaces.event.RenderPhaseComponentVisitor;
-import org.richfaces.skin.Skin;
-import org.richfaces.skin.SkinFactory;
-import org.richfaces.skin.SkinNotFoundException;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-
-public class RenderPhaseViewResourcesVisitor implements
- RenderPhaseComponentVisitor {
-
- public static final String COMPONENT_RESOURCE_LINK_CLASS = "component";
-
- public static final String USER_RESOURCE_LINK_CLASS = "user";
-
- private class ResponseWriterContentHandler implements ContentHandler {
-
- private List<Object> events = new ArrayList<Object>();
-
- private String linkClass;
-
- public ResponseWriterContentHandler(String linkClass) {
- super();
- this.linkClass = linkClass;
- }
-
- public void characters(char[] ch, int start, int length)
- throws SAXException {
-
- events.add(new SAXTextEvent(new String(ch, start, length)));
- }
-
- public void endDocument() throws SAXException {
- }
-
- public void endElement(String uri, String localName, String name)
- throws SAXException {
- events.add(new SAXEndElementEvent(localName));
- }
-
- public void endPrefixMapping(String prefix) throws SAXException {
- throw new UnsupportedOperationException();
- }
-
- public void ignorableWhitespace(char[] ch, int start, int length)
- throws SAXException {
- }
-
- public void processingInstruction(String target, String data)
- throws SAXException {
- throw new UnsupportedOperationException();
- }
-
- public void setDocumentLocator(Locator locator) {
- throw new UnsupportedOperationException();
- }
-
- public void skippedEntity(String name) throws SAXException {
- throw new UnsupportedOperationException();
- }
-
- public void startDocument() throws SAXException {
- }
-
- public void startElement(String uri, String localName,
- String name, Attributes atts) throws SAXException {
-
- Map<String, String> attsMap = new HashMap<String, String>(atts.getLength());
- int length = atts.getLength();
-
- for (int i = 0; i < length; i++) {
- attsMap.put(atts.getLocalName(i), atts.getValue(i));
- }
-
- if (HTML.LINK_ELEMENT.equals(localName)) {
- attsMap.put(HTML.class_ATTRIBUTE, linkClass);
- }
-
- events.add(new SAXStartElementEvent(localName, attsMap));
- }
-
- public void startPrefixMapping(String prefix, String uri)
- throws SAXException {
- throw new UnsupportedOperationException();
- }
-
- };
-
- class HeadResponseWriter extends SAXResponseWriter {
-
- public List getEventsList() {
- return ((ResponseWriterContentHandler) getXmlConsumer()).events;
- }
-
- public HeadResponseWriter(String linkClass) {
- super(new ResponseWriterContentHandler(linkClass));
-
- }
- }
-
- private class State {
-
- private RenderKit renderKit;
- private boolean processStyles;
- private boolean processScripts;
-
- private HeadResponseWriter component;
- private HeadResponseWriter user;
-
- private InternetResourceBuilder resourceBuilder;
- private boolean useSkinning;
- private boolean ajaxRequest;
-
- private Skin skin;
-
- protected HeadResponseWriter getComponentWriter() {
- return component;
- }
-
- protected HeadResponseWriter getUserWriter() {
- return user;
- }
-
- protected Object[] getEvents() {
- List componentList = component.getEventsList();
- List userList = user.getEventsList();
-
- Object[] result = new Object[componentList.size() + userList.size()];
- componentList.toArray(result);
- System.arraycopy(userList.toArray(), 0, result, componentList.size(), userList.size());
-
- return result;
- }
-
- public State(boolean processScripts, boolean processStyles, boolean useSkinning,
- RenderKit renderKit, InternetResourceBuilder resourceBuilder,
- HeadResponseWriter component,
- HeadResponseWriter user,
- boolean ajaxRequest, Skin skin) {
- super();
- this.processScripts = processScripts;
- this.processStyles = processStyles;
- this.useSkinning = useSkinning;
- this.renderKit = renderKit;
- this.resourceBuilder = resourceBuilder;
- this.component = component;
- this.user = user;
- this.ajaxRequest = ajaxRequest;
- this.skin = skin;
- }
-
- }
-
- private static final Log log = LogFactory.getLog(RenderPhaseViewResourcesVisitor.class);
-
- //TODO remove this in other
- public static final String RESOURCES_PROCESSED = "org.ajax4jsf.framework.HEADER_PROCESSED";
- private static final String INIT_PARAMETER_PREFIX = "_init_parameter_";
- private static final Object NULL = new Object();
- //todo
-
- private static final Map<String, Object> EXTENDED_SKINNING = new HashMap<String, Object>(1);
-
- static {
- EXTENDED_SKINNING.put(HTML.media_ATTRIBUTE, "rich-extended-skinning");
- }
-
- public static final String SKINNING_STYLES_PATH = "/org/richfaces/renderkit/html/css/";
-
- private boolean extendedSkinningAllowed = true;
-
- private boolean encodeSkinningResources(FacesContext context, InternetResourceBuilder resourceBuilder) throws IOException, FacesException {
- boolean useStdControlsSkinning = false;
-
- String stdControlsSkinning = getInitParameterValue(context, InternetResourceBuilder.STD_CONTROLS_SKINNING_PARAM);
- if (stdControlsSkinning != null) {
- useStdControlsSkinning = InternetResourceBuilder.ENABLE.equals(stdControlsSkinning);
- }
-
- boolean useStdControlsSkinningClasses = true;
-
- String stdControlsSkinningClasses = getInitParameterValue(context, InternetResourceBuilder.STD_CONTROLS_SKINNING_CLASSES_PARAM);
- if (stdControlsSkinningClasses != null) {
- useStdControlsSkinningClasses = InternetResourceBuilder.ENABLE.equals(stdControlsSkinningClasses);
- }
-
- String resourceSuffix = null;
-
- if (useStdControlsSkinning) {
- if (useStdControlsSkinningClasses) {
- resourceSuffix = "_both.xcss";
- } else {
- resourceSuffix = ".xcss";
- }
- } else {
- if (useStdControlsSkinningClasses) {
- resourceSuffix = "_classes.xcss";
- } else {
- //no resources
- }
- }
-
- if (resourceSuffix != null) {
- resourceBuilder.createResource(
- this, SKINNING_STYLES_PATH.concat("basic").concat(resourceSuffix)).encode(context, null);
-
- if (extendedSkinningAllowed) {
- resourceBuilder.createResource(
- this, SKINNING_STYLES_PATH.concat("extended").concat(resourceSuffix)).encode(context, null, EXTENDED_SKINNING);
- }
-
- return true;
- }
-
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.richfaces.event.ComponentPhaseEventHandler#beforePhaseBegin(javax.faces.event.PhaseEvent)
- */
- public Object beforeRoot(PhaseEvent event) {
- Object result = null;
- FacesContext context = event.getFacesContext();
-
- ExternalContext externalContext = context.getExternalContext();
- Map<String,Object> requestMap = externalContext.getRequestMap();
- if (!Boolean.TRUE.equals(requestMap.get(RESOURCES_PROCESSED))) {
- if (null != requestMap.get(BaseFilter.RESPONSE_WRAPPER_ATTRIBUTE)) {
-
- boolean processStyles = true;
- boolean processScripts = true;
- boolean useSkinning = false;
-
- boolean ajaxRequest = AjaxContext.getCurrentInstance(context).isAjaxRequest(context);
-
- if (log.isDebugEnabled()) {
- log
- .debug("Process component tree for collect used scripts and styles");
- }
-
- Skin skin = null;
- try {
- skin = SkinFactory.getInstance().getSkin(context);
- // For a "NULL" skin, do not collect components stylesheets
- if ("false".equals(skin.getParameter(context,
- Skin.loadStyleSheets))) {
- processStyles = false;
- }
- } catch (SkinNotFoundException e) {
- log.warn("Current Skin is not found", e);
- }
- InternetResourceBuilder internetResourceBuilder = InternetResourceBuilder
- .getInstance();
-
- ResponseWriter oldResponseWriter = context.getResponseWriter();
-
- HeadResponseWriter componentWriter = new HeadResponseWriter("component");
- HeadResponseWriter userWriter = new HeadResponseWriter("user");
-
- try {
- componentWriter.startDocument();
- userWriter.startDocument();
-
- context.setResponseWriter(componentWriter);
-
- // Check init parameters for a resources processing.
- String scriptStrategy = externalContext
- .getInitParameter(InternetResourceBuilder.LOAD_SCRIPT_STRATEGY_PARAM);
- if (null != scriptStrategy) {
- if (InternetResourceBuilder.LOAD_NONE
- .equals(scriptStrategy)) {
- processScripts = false;
- } else if (InternetResourceBuilder.LOAD_ALL
- .equals(scriptStrategy)) {
- processScripts = false;
- // For an "ALL" strategy, it is not necessary to load scripts in the ajax request
- if (!ajaxRequest) {
- try {
- internetResourceBuilder
- .createResource(
- this,
- InternetResourceBuilder.COMMON_FRAMEWORK_SCRIPT).encode(context, null);
- internetResourceBuilder
- .createResource(
- this,
- InternetResourceBuilder.COMMON_UI_SCRIPT).encode(context, null);
-
- } catch (ResourceNotFoundException e) {
- if (log.isWarnEnabled()) {
- log
- .warn("No aggregated javaScript library found "
- + e.getMessage());
- }
- }
-
- }
- }
- }
-
- String styleStrategy = externalContext
- .getInitParameter(InternetResourceBuilder.LOAD_STYLE_STRATEGY_PARAM);
-
- if (InternetResourceBuilder.LOAD_NONE.equals(styleStrategy)) {
- processStyles = false;
- } else if (InternetResourceBuilder.LOAD_ALL
- .equals(styleStrategy)) {
- processStyles = false;
- // For an "ALL" strategy, it is not necessary to load styles
- // in the ajax request
- if (!ajaxRequest) {
-
- try {
- useSkinning = encodeSkinningResources(context, internetResourceBuilder);
-
- internetResourceBuilder
- .createResource(this, InternetResourceBuilder.COMMON_STYLE).encode(context, null);
-
- } catch (ResourceNotFoundException e) {
- if (log.isWarnEnabled()) {
- log.warn("No stylesheet found "
- + e.getMessage());
- }
- }
-
- }
- } else {
- useSkinning = encodeSkinningResources(context, internetResourceBuilder);
- }
- } catch (IOException e) {
- throw new FacesException(e.getLocalizedMessage(), e);
- } finally {
- context.setResponseWriter(oldResponseWriter);
- }
-
- RenderKitFactory rkFactory = (RenderKitFactory) FactoryFinder
- .getFactory(FactoryFinder.RENDER_KIT_FACTORY);
- RenderKit renderKit = rkFactory.getRenderKit(context, context
- .getViewRoot().getRenderKitId());
-
- result = new State(processScripts, processStyles, useSkinning, renderKit,
- internetResourceBuilder, componentWriter, userWriter, ajaxRequest, skin);
- }
- }
- return result;
- }
-
- private void encodeResources(FacesContext context, ResourceRenderer renderer, Set<String> set) throws IOException {
-
- if (set != null) {
- URIInternetResource resourceImpl = new URIInternetResource();
-
- for (String uri : set) {
- resourceImpl.setUri(uri);
- renderer.encode(resourceImpl, context, null);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.richfaces.event.ComponentPhaseEventHandler#componentBegin(javax.faces.component.UIComponent, javax.faces.event.PhaseEvent, java.lang.Object)
- */
- public void beforeComponent(UIComponent component, PhaseEvent event,
- Object object) {
- if (object != null) {
- State state = (State) object;
- FacesContext context = event.getFacesContext();
- Renderer renderer = getRenderer(context, component, state.renderKit);
- if (null != renderer) {
- ResponseWriter oldResponseWriter = context.getResponseWriter();
- try {
- if ((state.processScripts || state.processStyles)
- && (renderer instanceof HeaderResourceProducer2 || renderer instanceof HeaderResourceProducer)) {
-
- context.setResponseWriter(state.getComponentWriter());
-
- if (renderer instanceof HeaderResourceProducer2) {
- HeaderResourceProducer2 producer = (HeaderResourceProducer2) renderer;
-
- producer.encodeToHead(context, component, state.processStyles,
- state.processScripts);
- } else if (renderer instanceof HeaderResourceProducer) {
- HeaderResourceProducer producer = (HeaderResourceProducer) renderer;
-
- if (state.processScripts) {
- encodeResources(context, state.resourceBuilder.getScriptRenderer(), producer.getHeaderScripts(context,
- component));
- }
- if (state.processStyles) {
- encodeResources(context, state.resourceBuilder.getStyleRenderer(), producer.getHeaderStyles(context,
- component));
- }
- }
- } else if (renderer instanceof UserResourceRenderer2) {
- context.setResponseWriter(state.getUserWriter());
-
- UserResourceRenderer2 producer = (UserResourceRenderer2) renderer;
- producer.encodeToHead(context, component);
- } else if (renderer instanceof UserResourceRenderer) {
- context.setResponseWriter(state.getUserWriter());
-
- UserResourceRenderer producer = (UserResourceRenderer) renderer;
-
- encodeResources(context, state.resourceBuilder.getScriptRenderer(), producer.getHeaderScripts(context,
- component));
-
- encodeResources(context, state.resourceBuilder.getStyleRenderer(), producer.getHeaderStyles(context,
- component));
- }
- } catch (IOException e) {
- throw new FacesException(e.getLocalizedMessage(), e);
- } finally {
- context.setResponseWriter(oldResponseWriter);
- }
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.richfaces.event.ComponentPhaseEventHandler#componentEnd(javax.faces.component.UIComponent, javax.faces.event.PhaseEvent, java.lang.Object)
- */
- public void afterComponent(UIComponent component, PhaseEvent event,
- Object state) {}
-
- /* (non-Javadoc)
- * @see org.richfaces.event.ComponentPhaseEventHandler#beforePhaseEnd(javax.faces.event.PhaseEvent, java.lang.Object)
- */
- public void afterRoot(PhaseEvent event, Object object) {
- if (object != null) {
- FacesContext context = event.getFacesContext();
- ExternalContext externalContext = context.getExternalContext();
- Map<String,Object> requestMap = externalContext.getRequestMap();
- State state = (State) object;
-
- String skinStyleSheetUri = null;
- String skinExtendedStyleSheetUri = null;
-
- if (state.skin != null) {
- // Set default style sheet for current skin.
- skinStyleSheetUri = (String) state.skin.getParameter(context,
- Skin.generalStyleSheet);
- // Set default style sheet for current skin.
- skinExtendedStyleSheetUri = (String) state.skin.getParameter(context,
- Skin.extendedStyleSheet);
- }
-
- boolean useSkinning = state.useSkinning;
- try {
- ResponseWriter oldWriter = context.getResponseWriter();
-
- try {
- HeadResponseWriter responseWriter = state.getComponentWriter();
- context.setResponseWriter(responseWriter);
-
- // Append Skin StyleSheet after a
- if (null != skinStyleSheetUri) {
- String resourceURL = context.getApplication()
- .getViewHandler().getResourceURL(context,
- skinStyleSheetUri);
-
- URIInternetResource resourceImpl = new URIInternetResource();
- resourceImpl.setUri(resourceURL);
- resourceImpl.setRenderer(state.resourceBuilder.getStyleRenderer());
- resourceImpl.encode(context, null);
-
- useSkinning = true;
- }
-
- if (null != skinExtendedStyleSheetUri && extendedSkinningAllowed) {
- String resourceURL = context.getApplication().getViewHandler().getResourceURL(context,
- skinExtendedStyleSheetUri);
-
- URIInternetResource resourceImpl = new URIInternetResource();
- resourceImpl.setUri(resourceURL);
- resourceImpl.setRenderer(state.resourceBuilder.getStyleRenderer());
- resourceImpl.encode(context, null, EXTENDED_SKINNING);
-
- useSkinning = true;
- }
-
- if (!state.ajaxRequest && useSkinning && extendedSkinningAllowed) {
- //skinning levels aren't dynamic, page-level setting cannot be changed
- //by AJAX request
- responseWriter.startElement("script", null);
- responseWriter.writeAttribute(HTML.TYPE_ATTR, "text/javascript", null);
- responseWriter.writeText("window.RICH_FACES_EXTENDED_SKINNING_ON=true;", null);
- responseWriter.endElement("script");
- }
-
- if (state.processScripts) {
- InternetResource resource = state.resourceBuilder.createResource(null,
- "/org/richfaces/renderkit/html/scripts/skinning.js");
-
- resource.encode(context, null);
- }
-
- } finally {
- context.setResponseWriter(oldWriter);
- }
-
- state.getComponentWriter().endDocument();
- state.getUserWriter().endDocument();
- } catch (IOException e) {
- throw new FacesException(e.getLocalizedMessage(), e);
- }
-
- Object[] stateEvents = state.getEvents();
-
- if (log.isDebugEnabled()) {
- log.debug(Arrays.toString(stateEvents));
- }
-
- requestMap.put(AjaxContext.HEAD_EVENTS_PARAMETER, stateEvents);
-
- // Mark as processed.
- requestMap.put(RESOURCES_PROCESSED, Boolean.TRUE);
- }
- }
-
- /**
- * Find renderer for given component.
- *
- * @param context
- * @param comp
- * @param renderKit
- * @return
- */
- private static Renderer getRenderer(FacesContext context, UIComponent comp, RenderKit renderKit) {
- String rendererType = comp.getRendererType();
- if (rendererType != null) {
- return (renderKit.getRenderer(comp.getFamily(), rendererType));
- } else {
- return (null);
- }
-
- }
-
- private static String getInitParameterValue(FacesContext context, String parameterName) {
-
- String key = INIT_PARAMETER_PREFIX + parameterName;
-
- ExternalContext externalContext = context.getExternalContext();
- Map<String, Object> applicationMap = externalContext.getApplicationMap();
- Object mutex = externalContext.getRequest();
- Object parameterValue = null;
-
- synchronized (mutex) {
- parameterValue = applicationMap.get(key);
-
- if (parameterValue == null) {
-
- String initParameter = externalContext.getInitParameter(parameterName);
- if (initParameter != null) {
-
- if (ELUtils.isValueReference(initParameter)) {
- Application application = context.getApplication();
- ExpressionFactory expressionFactory = application.getExpressionFactory();
-
- parameterValue = expressionFactory.createValueExpression(context.getELContext(),
- initParameter,
- String.class);
- } else {
- parameterValue = initParameter;
- }
-
- } else {
- parameterValue = NULL;
- }
-
- applicationMap.put(key, parameterValue);
- }
- }
-
- return evaluate(context, parameterValue);
- }
-
- private static String evaluate(FacesContext context, Object parameterValue) {
- if (parameterValue == NULL || parameterValue == null) {
- return null;
- } else if (parameterValue instanceof ValueExpression) {
- ValueExpression expression = (ValueExpression) parameterValue;
-
- return (String) expression.getValue(context.getELContext());
- } else {
- return parameterValue.toString();
- }
- }
-
-}
Added: trunk/framework/impl/src/main/java/org/ajax4jsf/context/ResponseWriterContentHandler.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/context/ResponseWriterContentHandler.java (rev 0)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/context/ResponseWriterContentHandler.java 2008-08-04 13:33:51 UTC (rev 9888)
@@ -0,0 +1,106 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - 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.ajax4jsf.context;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+
+class ResponseWriterContentHandler implements ContentHandler {
+
+ List<Object> events = new ArrayList<Object>();
+
+ private String linkClass;
+
+ public ResponseWriterContentHandler(String linkClass) {
+ super();
+ this.linkClass = linkClass;
+ }
+
+ public void characters(char[] ch, int start, int length)
+ throws SAXException {
+
+ events.add(new SAXTextEvent(new String(ch, start, length)));
+ }
+
+ public void endDocument() throws SAXException {
+ }
+
+ public void endElement(String uri, String localName, String name)
+ throws SAXException {
+ events.add(new SAXEndElementEvent(localName));
+ }
+
+ public void endPrefixMapping(String prefix) throws SAXException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void ignorableWhitespace(char[] ch, int start, int length)
+ throws SAXException {
+ }
+
+ public void processingInstruction(String target, String data)
+ throws SAXException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setDocumentLocator(Locator locator) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void skippedEntity(String name) throws SAXException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void startDocument() throws SAXException {
+ }
+
+ public void startElement(String uri, String localName,
+ String name, Attributes atts) throws SAXException {
+
+ Map<String, String> attsMap = new HashMap<String, String>(atts.getLength());
+ int length = atts.getLength();
+
+ for (int i = 0; i < length; i++) {
+ attsMap.put(atts.getLocalName(i), atts.getValue(i));
+ }
+
+ if (HTML.LINK_ELEMENT.equals(localName)) {
+ attsMap.put(HTML.class_ATTRIBUTE, linkClass);
+ }
+
+ events.add(new SAXStartElementEvent(localName, attsMap));
+ }
+
+ public void startPrefixMapping(String prefix, String uri)
+ throws SAXException {
+ throw new UnsupportedOperationException();
+ }
+
+}
\ No newline at end of file
Added: trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java (rev 0)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/context/ViewResources.java 2008-08-04 13:33:51 UTC (rev 9888)
@@ -0,0 +1,481 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - 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.ajax4jsf.context;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.faces.FacesException;
+import javax.faces.FactoryFinder;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.render.RenderKit;
+import javax.faces.render.RenderKitFactory;
+import javax.faces.render.Renderer;
+
+import org.ajax4jsf.io.SAXResponseWriter;
+import org.ajax4jsf.renderkit.HeaderResourceProducer;
+import org.ajax4jsf.renderkit.HeaderResourceProducer2;
+import org.ajax4jsf.renderkit.ProducerContext;
+import org.ajax4jsf.renderkit.ProducerContextImpl;
+import org.ajax4jsf.renderkit.UserResourceRenderer;
+import org.ajax4jsf.renderkit.UserResourceRenderer2;
+import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.ajax4jsf.resource.InternetResource;
+import org.ajax4jsf.resource.InternetResourceBase;
+import org.ajax4jsf.resource.InternetResourceBuilder;
+import org.ajax4jsf.resource.ResourceNotFoundException;
+import org.ajax4jsf.resource.ResourceRenderer;
+import org.ajax4jsf.resource.URIInternetResource;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.richfaces.skin.Skin;
+import org.richfaces.skin.SkinFactory;
+import org.richfaces.skin.SkinNotFoundException;
+
+/**
+ * @author Nick Belaevski
+ */
+
+public class ViewResources {
+
+ private String scriptStrategy;
+
+ private String styleStrategy;
+
+ private boolean useStdControlsSkinning;
+
+ private boolean useStdControlsSkinningClasses;
+
+ private HeadResponseWriter componentWriter;
+
+ private HeadResponseWriter userWriter;
+
+ private RenderKit renderKit;
+
+ private Object[] result = null;
+
+ private static final InternetResource EXTENDED_SKINNING_ON_RESOURCE = new InternetResourceBase() {
+
+ @Override
+ public void encode(FacesContext context, Object data)
+ throws IOException {
+
+ encode(context, data, Collections.EMPTY_MAP);
+ }
+
+ @Override
+ public void encode(FacesContext context, Object data,
+ Map<String, Object> attributes) throws IOException {
+
+ ResponseWriter writer = context.getResponseWriter();
+ writer.startElement(HTML.SCRIPT_ELEM, null);
+
+ if (!attributes.containsKey(HTML.TYPE_ATTR)) {
+ writer.writeAttribute(HTML.TYPE_ATTR, "text/javascript", null);
+ }
+
+ for (Map.Entry<String, Object> entry : attributes.entrySet()) {
+ writer.writeAttribute(entry.getKey(), entry.getValue(), null);
+ }
+
+ writer.writeText("window.RICH_FACES_EXTENDED_SKINNING_ON=true;", null);
+
+ writer.endElement(HTML.SCRIPT_ELEM);
+ }
+ };
+
+ public void setScriptStrategy(String scriptsStrategy) {
+ this.scriptStrategy = scriptsStrategy;
+ }
+
+ public void setStyleStrategy(String stylesStrategy) {
+ this.styleStrategy = stylesStrategy;
+ }
+
+ public void setUseStdControlsSkinning(boolean stdControlsSkinning) {
+ this.useStdControlsSkinning = stdControlsSkinning;
+ }
+
+ public void setUseStdControlsSkinningClasses(boolean stdControlsSkinningClasses) {
+ this.useStdControlsSkinningClasses = stdControlsSkinningClasses;
+ }
+
+ public void setExtendedSkinningAllowed(boolean extendedSkinningAllowed) {
+ this.extendedSkinningAllowed = extendedSkinningAllowed;
+ }
+
+ public Object getHeadEvents() {
+ List componentList = componentWriter.getEventsList();
+ List userList = userWriter.getEventsList();
+
+ result = new Object[componentList.size() + userList.size()];
+ componentList.toArray(result);
+ System.arraycopy(userList.toArray(), 0, result, componentList.size(), userList.size());
+
+ return result;
+ }
+
+ private static final Log log = LogFactory.getLog(ViewResources.class);
+
+ //todo
+
+ private static final Map<String, Object> EXTENDED_SKINNING = new HashMap<String, Object>(1);
+
+ static {
+ EXTENDED_SKINNING.put(HTML.media_ATTRIBUTE, "rich-extended-skinning");
+ }
+
+ public static final String SKINNING_STYLES_PATH = "/org/richfaces/renderkit/html/css/";
+
+ private boolean extendedSkinningAllowed = true;
+
+ private boolean processScripts;
+
+ private boolean processStyles;
+
+ private boolean useSkinning;
+
+ private InternetResourceBuilder resourceBuilder;
+
+ private boolean ajaxRequest;
+
+ private ProducerContext producerContext;
+
+ public static final String COMPONENT_RESOURCE_LINK_CLASS = "component";
+
+ public static final String USER_RESOURCE_LINK_CLASS = "user";
+
+ class HeadResponseWriter extends SAXResponseWriter {
+
+ public List getEventsList() {
+ return ((ResponseWriterContentHandler) getXmlConsumer()).events;
+ }
+
+ public HeadResponseWriter(String linkClass) {
+ super(new ResponseWriterContentHandler(linkClass));
+
+ }
+ }
+
+ private void encodeResources(FacesContext context, ResourceRenderer renderer, Set<String> set) throws IOException {
+
+ if (set != null) {
+ URIInternetResource resourceImpl = new URIInternetResource();
+
+ for (String uri : set) {
+ resourceImpl.setUri(uri);
+ renderer.encode(resourceImpl, context, null);
+ }
+ }
+ }
+
+ private boolean encodeSkinningResources(FacesContext context, InternetResourceBuilder resourceBuilder) throws IOException, FacesException {
+ String resourceSuffix = null;
+
+ if (useStdControlsSkinning) {
+ if (useStdControlsSkinningClasses) {
+ resourceSuffix = "_both.xcss";
+ } else {
+ resourceSuffix = ".xcss";
+ }
+ } else {
+ if (useStdControlsSkinningClasses) {
+ resourceSuffix = "_classes.xcss";
+ } else {
+ //no resources
+ }
+ }
+
+ if (resourceSuffix != null) {
+ resourceBuilder.createResource(
+ this, SKINNING_STYLES_PATH.concat("basic").concat(resourceSuffix)).encode(context, null);
+
+ if (extendedSkinningAllowed) {
+ resourceBuilder.createResource(
+ this, SKINNING_STYLES_PATH.concat("extended").concat(resourceSuffix)).encode(context, null, EXTENDED_SKINNING);
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
+ protected void processComponent(FacesContext context, UIComponent component) throws IOException, FacesException {
+ Renderer renderer = getRenderer(context, component);
+ if (null != renderer) {
+ ResponseWriter oldResponseWriter = context.getResponseWriter();
+ try {
+ if ((processScripts || processStyles)
+ && (renderer instanceof HeaderResourceProducer2 || renderer instanceof HeaderResourceProducer)) {
+
+ context.setResponseWriter(componentWriter);
+
+ if (renderer instanceof HeaderResourceProducer2) {
+ HeaderResourceProducer2 producer = (HeaderResourceProducer2) renderer;
+
+ if (producerContext == null) {
+ producerContext = new ProducerContextImpl(processScripts, processStyles);
+ }
+
+ producer.encodeToHead(context, component, producerContext);
+ } else if (renderer instanceof HeaderResourceProducer) {
+ HeaderResourceProducer producer = (HeaderResourceProducer) renderer;
+
+ if (processScripts) {
+ encodeResources(context, resourceBuilder.getScriptRenderer(), producer.getHeaderScripts(context,
+ component));
+ }
+ if (processStyles) {
+ encodeResources(context, resourceBuilder.getStyleRenderer(), producer.getHeaderStyles(context,
+ component));
+ }
+ }
+ } else if (renderer instanceof UserResourceRenderer2) {
+ context.setResponseWriter(userWriter);
+
+ UserResourceRenderer2 producer = (UserResourceRenderer2) renderer;
+ producer.encodeToHead(context, component);
+ } else if (renderer instanceof UserResourceRenderer) {
+ context.setResponseWriter(userWriter);
+
+ UserResourceRenderer producer = (UserResourceRenderer) renderer;
+
+ encodeResources(context, resourceBuilder.getScriptRenderer(), producer.getHeaderScripts(context,
+ component));
+
+ encodeResources(context, resourceBuilder.getStyleRenderer(), producer.getHeaderStyles(context,
+ component));
+ }
+ } finally {
+ context.setResponseWriter(oldResponseWriter);
+ }
+ }
+
+ }
+
+ /**
+ * Find renderer for given component.
+ *
+ * @param context
+ * @param comp
+ * @param renderKit
+ * @return
+ */
+ private Renderer getRenderer(FacesContext context, UIComponent comp) {
+
+ String rendererType = comp.getRendererType();
+ if (rendererType != null) {
+ return (renderKit.getRenderer(comp.getFamily(), rendererType));
+ } else {
+ return (null);
+ }
+ }
+
+ protected void traverse(FacesContext context, UIComponent component) throws IOException, FacesException {
+ if (component != null) {
+ processComponent(context, component);
+
+ if (component.getChildCount() > 0) {
+ for (UIComponent child : component.getChildren()) {
+ traverse(context, child);
+ }
+ }
+
+ if (component.getFacetCount() > 0) {
+ for (UIComponent child : component.getFacets().values()) {
+ traverse(context, child);
+ }
+ }
+ }
+ }
+
+ public void processHeadResources(FacesContext context) throws FacesException {
+
+ RenderKitFactory rkFactory = (RenderKitFactory) FactoryFinder
+ .getFactory(FactoryFinder.RENDER_KIT_FACTORY);
+ renderKit = rkFactory.getRenderKit(context, context
+ .getViewRoot().getRenderKitId());
+
+ processStyles = true;
+ processScripts = true;
+ useSkinning = false;
+
+ ajaxRequest = AjaxContext.getCurrentInstance(context).isAjaxRequest(context);
+
+ if (log.isDebugEnabled()) {
+ log
+ .debug("Process component tree for collect used scripts and styles");
+ }
+
+ String skinStyleSheetUri = null;
+ String skinExtendedStyleSheetUri = null;
+
+ Skin skin = null;
+ try {
+ skin = SkinFactory.getInstance().getSkin(context);
+ // For a "NULL" skin, do not collect components stylesheets
+ if ("false".equals(skin.getParameter(context,
+ Skin.loadStyleSheets))) {
+ processStyles = false;
+ }
+ // Set default style sheet for current skin.
+ skinStyleSheetUri = (String) skin.getParameter(context,
+ Skin.generalStyleSheet);
+ // Set default style sheet for current skin.
+ skinExtendedStyleSheetUri = (String) skin.getParameter(context,
+ Skin.extendedStyleSheet);
+ } catch (SkinNotFoundException e) {
+ log.warn("Current Skin is not found", e);
+ }
+
+ resourceBuilder = InternetResourceBuilder.getInstance();
+
+ ResponseWriter oldResponseWriter = context.getResponseWriter();
+
+ componentWriter = new HeadResponseWriter("component");
+ userWriter = new HeadResponseWriter("user");
+
+ try {
+ componentWriter.startDocument();
+ userWriter.startDocument();
+
+ context.setResponseWriter(componentWriter);
+
+ // Check init parameters for a resources processing.
+ if (null != scriptStrategy) {
+ if (InternetResourceBuilder.LOAD_NONE
+ .equals(scriptStrategy)) {
+ processScripts = false;
+ } else if (InternetResourceBuilder.LOAD_ALL
+ .equals(scriptStrategy)) {
+ processScripts = false;
+ // For an "ALL" strategy, it is not necessary to load scripts in the ajax request
+ if (!ajaxRequest) {
+ try {
+ resourceBuilder
+ .createResource(
+ this,
+ InternetResourceBuilder.COMMON_FRAMEWORK_SCRIPT).encode(context, null);
+ resourceBuilder
+ .createResource(
+ this,
+ InternetResourceBuilder.COMMON_UI_SCRIPT).encode(context, null);
+
+ } catch (ResourceNotFoundException e) {
+ if (log.isWarnEnabled()) {
+ log
+ .warn("No aggregated javaScript library found "
+ + e.getMessage());
+ }
+ }
+
+ }
+ }
+ }
+
+ if (InternetResourceBuilder.LOAD_NONE.equals(styleStrategy)) {
+ processStyles = false;
+ } else if (InternetResourceBuilder.LOAD_ALL
+ .equals(styleStrategy)) {
+ processStyles = false;
+ // For an "ALL" strategy, it is not necessary to load styles
+ // in the ajax request
+ if (!ajaxRequest) {
+
+ try {
+ useSkinning = encodeSkinningResources(context, resourceBuilder);
+
+ resourceBuilder
+ .createResource(this, InternetResourceBuilder.COMMON_STYLE).encode(context, null);
+
+ } catch (ResourceNotFoundException e) {
+ if (log.isWarnEnabled()) {
+ log.warn("No stylesheet found "
+ + e.getMessage());
+ }
+ }
+
+ }
+ } else {
+ useSkinning = encodeSkinningResources(context, resourceBuilder);
+ }
+
+ //traverse components
+ traverse(context, context.getViewRoot());
+
+ context.setResponseWriter(componentWriter);
+
+ // Append Skin StyleSheet after a
+ if (null != skinStyleSheetUri) {
+ String resourceURL = context.getApplication()
+ .getViewHandler().getResourceURL(context,
+ skinStyleSheetUri);
+
+ URIInternetResource resourceImpl = new URIInternetResource();
+ resourceImpl.setUri(resourceURL);
+ resourceImpl.setRenderer(resourceBuilder.getStyleRenderer());
+ resourceImpl.encode(context, null);
+
+ useSkinning = true;
+ }
+
+ if (null != skinExtendedStyleSheetUri && extendedSkinningAllowed) {
+ String resourceURL = context.getApplication().getViewHandler().getResourceURL(context,
+ skinExtendedStyleSheetUri);
+
+ URIInternetResource resourceImpl = new URIInternetResource();
+ resourceImpl.setUri(resourceURL);
+ resourceImpl.setRenderer(resourceBuilder.getStyleRenderer());
+ resourceImpl.encode(context, null, EXTENDED_SKINNING);
+
+ useSkinning = true;
+ }
+
+ if (!ajaxRequest && useSkinning && extendedSkinningAllowed) {
+ //skinning levels aren't dynamic, page-level setting cannot be changed
+ //by AJAX request
+ EXTENDED_SKINNING_ON_RESOURCE.encode(context, null);
+ }
+
+ if (processScripts) {
+ InternetResource resource = resourceBuilder.createResource(null,
+ "/org/richfaces/renderkit/html/scripts/skinning.js");
+
+ resource.encode(context, null);
+ }
+
+ componentWriter.endDocument();
+ userWriter.endDocument();
+ } catch (IOException e) {
+ throw new FacesException(e.getLocalizedMessage(), e);
+ } finally {
+ context.setResponseWriter(oldResponseWriter);
+ }
+ }
+}
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/HeaderResourcesRendererBase.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/HeaderResourcesRendererBase.java 2008-08-04 13:25:50 UTC (rev 9887)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/HeaderResourcesRendererBase.java 2008-08-04 13:33:51 UTC (rev 9888)
@@ -146,10 +146,9 @@
}
}
- public void encodeToHead(FacesContext context, UIComponent component,
- boolean processStyles, boolean processScripts) throws IOException {
+ public void encodeToHead(FacesContext context, UIComponent component, ProducerContext pc) throws IOException {
- if (processScripts) {
+ if (pc.isProcessScripts()) {
InternetResource[] scripts = getScripts();
if (scripts != null) {
for (InternetResource resource : scripts) {
@@ -158,7 +157,7 @@
}
}
- if (processStyles) {
+ if (pc.isProcessStyles()) {
InternetResource[] styles = getStyles();
if (styles != null) {
for (InternetResource resource : styles) {
Added: trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/ProducerContextImpl.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/ProducerContextImpl.java (rev 0)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/ProducerContextImpl.java 2008-08-04 13:33:51 UTC (rev 9888)
@@ -0,0 +1,50 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - 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.ajax4jsf.renderkit;
+
+
+/**
+ * @author Nick Belaevski
+ * @since 3.2.2
+ */
+
+public class ProducerContextImpl implements ProducerContext {
+
+ private boolean processScripts;
+
+ private boolean processStyles;
+
+ public boolean isProcessScripts() {
+ return processScripts;
+ }
+
+ public boolean isProcessStyles() {
+ return processStyles;
+ }
+
+ public ProducerContextImpl(boolean processScripts, boolean processStyles) {
+ super();
+ this.processScripts = processScripts;
+ this.processStyles = processStyles;
+ }
+
+}
Modified: trunk/framework/impl/src/main/resources/META-INF/services/org.richfaces.component.RenderPhaseComponentVisitor
===================================================================
--- trunk/framework/impl/src/main/resources/META-INF/services/org.richfaces.component.RenderPhaseComponentVisitor 2008-08-04 13:25:50 UTC (rev 9887)
+++ trunk/framework/impl/src/main/resources/META-INF/services/org.richfaces.component.RenderPhaseComponentVisitor 2008-08-04 13:33:51 UTC (rev 9888)
@@ -1,2 +1 @@
org.ajax4jsf.component.RenderPhaseUIDataAdaptorVisitor
-org.ajax4jsf.context.RenderPhaseViewResourcesVisitor
\ No newline at end of file
16 years, 7 months
JBoss Rich Faces SVN: r9886 - in trunk/sandbox/samples/extendedDataTable-sample: .settings and 40 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: pkawiak
Date: 2008-08-04 09:13:58 -0400 (Mon, 04 Aug 2008)
New Revision: 9886
Added:
trunk/sandbox/samples/extendedDataTable-sample/.classpath
trunk/sandbox/samples/extendedDataTable-sample/.project
trunk/sandbox/samples/extendedDataTable-sample/.settings/
trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.jdt.core.prefs
trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.common.component
trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.common.project.facet.core.xml
trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.validation.prefs
trunk/sandbox/samples/extendedDataTable-sample/.settings/org.hibernate.eclipse.console.prefs
trunk/sandbox/samples/extendedDataTable-sample/.settings/org.maven.ide.eclipse.prefs
trunk/sandbox/samples/extendedDataTable-sample/pom.xml
trunk/sandbox/samples/extendedDataTable-sample/src/
trunk/sandbox/samples/extendedDataTable-sample/src/main/
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/i18n/
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/i18n/messages.properties
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/beans/
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.java
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/model/
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/model/impl/
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/model/impl/DemoPatient.java
trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.java
trunk/sandbox/samples/extendedDataTable-sample/src/main/resources/
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/META-INF/
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/META-INF/MANIFEST.MF
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/faces-config.xml
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/lib/
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/web.xml
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/index.jsp
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/pages/
trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/pages/index.jsp
trunk/sandbox/samples/extendedDataTable-sample/target/
trunk/sandbox/samples/extendedDataTable-sample/target/classes/
trunk/sandbox/samples/extendedDataTable-sample/target/classes/i18n/
trunk/sandbox/samples/extendedDataTable-sample/target/classes/i18n/messages.properties
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/beans/
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB$1.class
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.class
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/model/
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/model/impl/
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/model/impl/DemoPatient.class
trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.class
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample.war
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/META-INF/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/META-INF/MANIFEST.MF
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/.faces-config.xml.jsfdia
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/beans/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB$1.class
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.class
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/model/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/model/impl/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/model/impl/DemoPatient.class
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.class
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/faces-config.xml
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/cglib-nodep-2.1_3.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-beanutils-1.7.0.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-codec-1.3.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-collections-3.2.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-digester-1.8.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-httpclient-3.1.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-io-1.3.1.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-lang-2.3.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-logging-1.0.4.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/core-3.2.2-SNAPSHOT.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/cssparser-0.9.4.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/easymock-2.2.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/easymockclassextension-2.2.1.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/extendedDataTable-3.2.2-SNAPSHOT.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/htmlunit-1.14.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jaxen-1.1.1.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/js-1.6R7.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jsf-api-1.2_09-BETA1.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jsf-facelets-1.1.14.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jsf-impl-1.2_09-BETA1.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jstl-1.0.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/nekohtml-0.9.5.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-api-3.2.2-SNAPSHOT.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-impl-3.2.2-SNAPSHOT.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-sandbox-api-3.2.2-SNAPSHOT.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-sandbox-impl-3.2.2-SNAPSHOT.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-test-3.2.2-SNAPSHOT.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-ui-3.2.2-SNAPSHOT.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/shale-test-1.0.4.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/skins-3.2.2-SNAPSHOT.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/xercesImpl-2.6.2.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/xmlParserAPIs-2.6.2.jar
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/web.xml
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/index.jsp
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/pages/
trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/pages/index.jsp
trunk/sandbox/samples/extendedDataTable-sample/target/test-classes/
trunk/sandbox/samples/extendedDataTable-sample/target/war/
trunk/sandbox/samples/extendedDataTable-sample/target/war/work/
trunk/sandbox/samples/extendedDataTable-sample/target/war/work/webapp-cache.xml
Log:
Initial commit of samples project, .project file included!
Added: trunk/sandbox/samples/extendedDataTable-sample/.classpath
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/.classpath (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/.classpath 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
+ <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Added: trunk/sandbox/samples/extendedDataTable-sample/.project
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/.project (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/.project 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>extendedDataTable-sample</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.jboss.tools.jsf.jsfnature</nature>
+ </natures>
+</projectDescription>
Added: trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.jdt.core.prefs 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,7 @@
+#Mon Aug 04 10:30:52 CEST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
Added: trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.common.component
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.common.component (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.common.component 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="extendedDataTable-sample">
+ <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
+ <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
+ <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
+ <property name="context-root" value="extendedDataTable-sample"/>
+ <property name="java-output-path" value="build/classes"/>
+ </wb-module>
+</project-modules>
Added: trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.common.project.facet.core.xml
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.common.project.facet.core.xml (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.common.project.facet.core.xml 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <installed facet="jst.java" version="5.0"/>
+ <installed facet="jst.web" version="2.3"/>
+</faceted-project>
Added: trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.validation.prefs
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.validation.prefs (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/.settings/org.eclipse.wst.validation.prefs 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,6 @@
+#Mon Aug 04 15:05:58 CEST 2008
+DELEGATES_PREFERENCE=delegateValidatorListorg.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator\=org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator\=org.eclipse.wst.wsdl.validation.internal.eclipse.Validator;
+USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.jst.jsf.validation.internal.appconfig.AppConfigValidator;org.eclipse.jst.jsf.validation.internal.JSPSemanticsValidator;org.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.jboss.tools.seam.internal.core.validation.SeamProjectPropertyValidator;org.eclipse.wst.html.internal.validation.HTMLValidator;org.eclipse.jst.j2ee.internal.web.validation.UIWarValidator;org.eclipse.jst.jsp.core.internal.validation.JSPContentValidator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.common.componentcore.internal.ModuleCoreValidator;
+USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.jst.jsf.validation.internal.appconfig.AppConfigValidator;org.eclipse.jst.jsf.validation.internal.JSPSemanticsValidator;org.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.jboss.tools.seam.internal.core.validation.SeamProjectPropertyValidator;org.eclipse.wst.html.internal.validation.HTMLValidator;org.eclipse.jst.j2ee.internal.web.validation.UIWarValidator;org.eclipse.jst.jsp.core.internal.validation.JSPContentValidator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.common.componentcore.internal.ModuleCoreValidator;
+USER_PREFERENCE=overrideGlobalPreferencesfalse
+eclipse.preferences.version=1
Added: trunk/sandbox/samples/extendedDataTable-sample/.settings/org.hibernate.eclipse.console.prefs
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/.settings/org.hibernate.eclipse.console.prefs (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/.settings/org.hibernate.eclipse.console.prefs 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,4 @@
+#Mon Aug 04 15:01:55 CEST 2008
+default.configuration=
+eclipse.preferences.version=1
+hibernate3.enabled=false
Added: trunk/sandbox/samples/extendedDataTable-sample/.settings/org.maven.ide.eclipse.prefs
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/.settings/org.maven.ide.eclipse.prefs (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/.settings/org.maven.ide.eclipse.prefs 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,8 @@
+#Mon Aug 04 15:07:18 CEST 2008
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=false
+resourceFilterGoals=process-resources resources\:testResources
+version=1
Added: trunk/sandbox/samples/extendedDataTable-sample/pom.xml
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/pom.xml (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/pom.xml 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?><project>
+ <parent>
+ <artifactId>samples</artifactId>
+ <groupId>org.richfaces.sandbox</groupId>
+ <version>3.2.2-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.richfaces.sandbox</groupId>
+ <artifactId>extendedDataTable-sample</artifactId>
+ <packaging>war</packaging>
+ <name>extendedDataTable-sample Maven Webapp</name>
+ <version>3.2.2-SNAPSHOT</version>
+ <url>http://maven.apache.org</url>
+ <build>
+ <finalName>extendedDataTable-sample</finalName>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.ui</groupId>
+ <artifactId>core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.samples</groupId>
+ <artifactId>skins</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.sandbox.ui</groupId>
+ <artifactId>extendedDataTable</artifactId>
+ <version>${project.version}</version>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Added: trunk/sandbox/samples/extendedDataTable-sample/src/main/java/i18n/messages.properties
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/src/main/java/i18n/messages.properties (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/src/main/java/i18n/messages.properties 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,5 @@
+demo.title=Extended data table demonstration
+patient.firstName=First name
+patient.id=Id
+patient.lastName=Last name
+patient.admissionDate=Admission date
Added: trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.java
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.java (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.java 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,105 @@
+package org.richfaces.samples.extdt.beans;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.faces.context.FacesContext;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.richfaces.samples.extdt.model.impl.DemoPatient;
+import org.richfaces.samples.extdt.model.impl.DemoPatientProvider;
+import org.richfaces.model.ExtendedTableDataModel;
+import org.richfaces.model.selection.SimpleSelection;
+
+/**
+ * @author pkawiak
+ *
+ */
+public class ExtendedDataTableBB {
+
+ private SimpleSelection selection = new SimpleSelection();
+ private List<DemoPatient> selectedItems;
+ private Comparator<DemoPatient> dateComparator;
+ private String tableState = null;
+ private ExtendedTableDataModel<DemoPatient> dataModel;
+
+ public ExtendedDataTableBB() {
+ }
+
+ public ExtendedTableDataModel<DemoPatient> getDataModel(){
+ if (dataModel == null){
+ dataModel = new ExtendedTableDataModel<DemoPatient>(new DemoPatientProvider());
+ }
+ return dataModel;
+ }
+
+ public SimpleSelection getSelection() {
+ return selection;
+ }
+
+ public void setSelection(SimpleSelection selection) {
+ this.selection = selection;
+ }
+
+ public String takeSelection() {
+ getSelectedItems().clear();
+ Iterator<Object> iterator = getSelection().getKeys();
+ while (iterator.hasNext()){
+ Object key = iterator.next();
+ selectedItems.add(getDataModel().getObjectByKey(key));
+ }
+ return null;
+ }
+
+ public List<DemoPatient> getSelectedItems() {
+ if (selectedItems == null){
+ selectedItems = new ArrayList<DemoPatient>();
+ }
+ return selectedItems;
+ }
+
+ public void setSelectedItems(List<DemoPatient> selectedItems) {
+ this.selectedItems = selectedItems;
+ }
+
+ public String getTableState() {
+ if (tableState == null){
+ //try to get state from cookies
+ Cookie[] cookies = ((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getCookies();
+ if (cookies != null){
+ for (Cookie c : cookies){
+ if (c.getName().equals("g3demoTabelState")){
+ tableState = c.getValue();
+ break;
+ }
+ }
+ }
+ }
+ return tableState;
+ }
+
+ public void setTableState(String tableState) {
+ this.tableState = tableState;
+ //save state in cookies
+ Cookie stateCookie = new Cookie("g3demoTabelState", this.tableState);
+ ((HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse()).addCookie(stateCookie);
+ }
+
+ public Comparator<DemoPatient> getDateComparator(){
+ if (dateComparator == null){
+ dateComparator = new Comparator<DemoPatient>(){
+
+ public int compare(DemoPatient o1, DemoPatient o2) {
+ return o1.getAdmissionDate().compareTo(o2.getAdmissionDate());
+ }
+
+ };
+ }
+ return dateComparator;
+ }
+
+}
Added: trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/model/impl/DemoPatient.java
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/model/impl/DemoPatient.java (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/model/impl/DemoPatient.java 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,82 @@
+package org.richfaces.samples.extdt.model.impl;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author pkawiak
+ */
+
+public class DemoPatient implements Serializable{
+
+ private Integer id;
+ private String firstName;
+ private String lastName;
+ private Date admissionDate;
+
+ DemoPatient(Integer id, String firstName, String lastName, Date admissionDate) {
+ this.id = id;
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.admissionDate = admissionDate;
+ }
+
+ /**
+ * @return the id
+ */
+ public Integer getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the firstName
+ */
+ public String getFirstName() {
+ return firstName;
+ }
+
+ /**
+ * @param firstName the firstName to set
+ */
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ /**
+ * @return the lastName
+ */
+ public String getLastName() {
+ return lastName;
+ }
+
+ /**
+ * @param lastName the lastName to set
+ */
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ /**
+ * @return the admissionDate
+ */
+ public Date getAdmissionDate() {
+ return admissionDate;
+ }
+
+ /**
+ * @param admissionDate the admissionDate to set
+ */
+ public void setAdmissionDate(Date admissionDate) {
+ this.admissionDate = admissionDate;
+ }
+
+
+
+}
Added: trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.java
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.java (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/src/main/java/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.java 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,117 @@
+package org.richfaces.samples.extdt.model.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Random;
+
+import org.richfaces.model.DataProvider;
+
+/**
+ * @author pkawiak
+ *
+ */
+
+public class DemoPatientProvider implements DataProvider<DemoPatient>{
+
+ private String allFirstNames[] = {
+ "Aaron", "Abbott", "Abel", "Abner",
+ "Abraham", "Adam", "Addison", "Adler",
+ "Adley", "Adrian", "Aedan", "Aiken",
+ "Alan", "Alastair", "Albern", "Albert",
+ "Albion", "Alden", "Aldis", "Aldrich",
+ "Alexander","Alfie", "Alfred", "Algernon",
+ "Alston", "Alton", "Alvin", "Ambrose",
+ "Amery", "Amos", "Andrew", "Angus",
+ "Ansel", "Anthony", "Archer", "Archibald",
+ "Arlen", "Arnold", "Arthur", "Arvel",
+ "Atwater", "Atwood", "Aubrey", "Austin"
+ };
+
+ private String allLastNames[] = {
+ "Brown", "Smith", "Patel",
+ "Jones", "Williams", "Johnson",
+ "Taylor", "Thomas", "Roberts",
+ "Khan", "Lewis", "Jackson",
+ "Clarke", "James", "Phillips",
+ "Wilson", "Ali", "Mason",
+ "Mitchell", "Rose", "Davis",
+ "Davies", "Rodriguez", "Cox",
+ "Alexander"
+
+ };
+
+ private List<DemoPatient> items;
+
+ private Random random = new Random();
+ private long now = new Date().getTime();
+
+
+ public DemoPatientProvider() {
+ super();
+ }
+
+ private Date generateRandomDate(){
+ return new Date(Math.abs(random.nextLong()%now));
+ }
+
+ private String generateRandomFirstName() {
+ int rand = Math.abs(random.nextInt());
+ return allFirstNames[rand%(allFirstNames.length-1)];
+ }
+
+ private String generateRandomLastName() {
+ int rand = Math.abs(random.nextInt());
+ return allLastNames[rand%(allLastNames.length-1)];
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.model.DataProvider#getItemByKey(java.lang.Object)
+ */
+ public DemoPatient getItemByKey(Object key) {
+ if (key == null)
+ return null;
+ for (DemoPatient entity : getItems()){
+ if (entity.getId().equals(key))
+ return entity;
+ }
+ return null;
+ }
+
+ protected List<DemoPatient> getItems() {
+ if (items == null){
+ int l = 100;
+ items = new ArrayList<DemoPatient>(l);
+ for (int i=0;i<l;i++) {
+ items.add(new DemoPatient(i,
+ generateRandomFirstName(),
+ generateRandomLastName(),
+ generateRandomDate()));
+ }
+
+ }
+ return items;
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.model.DataProvider#getItemsByRange(int, int)
+ */
+ public List<DemoPatient> getItemsByRange(int firstRow, int lastRow) {
+ return getItems().subList(firstRow, lastRow);
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.model.DataProvider#getKey(java.lang.Object)
+ */
+ public Object getKey(DemoPatient item) {
+ return item.getId();
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.model.DataProvider#getRowCount()
+ */
+ public int getRowCount() {
+ return getItems().size();
+ }
+
+}
\ No newline at end of file
Added: trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/META-INF/MANIFEST.MF
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/META-INF/MANIFEST.MF (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/META-INF/MANIFEST.MF 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
Added: trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PROCESS model-entity="JSFProcess"/>
Added: trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/faces-config.xml (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/faces-config.xml 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
+ <managed-bean>
+ <managed-bean-name>extendedDataTableBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.samples.extdt.beans.ExtendedDataTableBB</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <application>
+ <locale-config>
+ <default-locale>pl</default-locale>
+ <supported-locale>de</supported-locale>
+ <supported-locale>en</supported-locale>
+ </locale-config>
+ <resource-bundle>
+ <base-name>i18n.messages</base-name>
+ <var>msg</var>
+ </resource-bundle>
+ </application>
+</faces-config>
Added: trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/web.xml (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/WEB-INF/web.xml 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+ <display-name>Archetype Created Web Application</display-name>
+ <context-param>
+ <param-name>javax.faces.CONFIG_FILES</param-name>
+ <param-value>/WEB-INF/faces-config.xml</param-value>
+ </context-param>
+ <context-param>
+ <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
+ <param-value>server</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
+ <param-value>false</param-value>
+ </context-param>
+
+ <filter>
+ <display-name>Ajax4jsf Filter</display-name>
+ <filter-name>ajax4jsf</filter-name>
+ <filter-class>org.ajax4jsf.Filter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>ajax4jsf</filter-name>
+ <servlet-name>Faces Servlet</servlet-name>
+ <dispatcher>REQUEST</dispatcher>
+ <dispatcher>FORWARD</dispatcher>
+ <dispatcher>INCLUDE</dispatcher>
+ </filter-mapping>
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>/faces/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.jsf</url-pattern>
+ </servlet-mapping>
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ </login-config>
+</web-app>
Added: trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/index.jsp
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/index.jsp (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/index.jsp 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+ <jsp:forward page="/pages/index.jsf"/>
+</body>
+</html>
\ No newline at end of file
Added: trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/pages/index.jsp (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/src/main/webapp/pages/index.jsp 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,71 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
+<%@ taglib uri="http://richfaces.org/rich" prefix="rich" %>
+<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" %>
+<%@ taglib uri="http://labs.jboss.com/jbossrichfaces/ui/ui/extendedDataTable" prefix="extdt" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<f:view>
+ <html>
+ <head>
+ <title>
+ <h:outputText value="#{msg['demo.title']}">
+ </h:outputText>
+ </title>
+ </head>
+
+<body>
+ <h:form>
+ <extdt:extendedDataTable id="demoTable"
+ value="#{extendedDataTableBean.dataModel}"
+ var="patient"
+ width="500px"
+ height="500px"
+ selectedClass="dataTableSelectedRow"
+ footerClass="demo-footer"
+ sortMode="single"
+ selectionMode="multi"
+ selection="#{extendedDataTableBean.selection}"
+ rowKeyVar="rkvar"
+ tableState="#{extendedDataTableBean.tableState}">
+ <rich:column id="firstName"
+ headerClass="dataTableHeader"
+ width="150"
+ label="#{msg['patient.firstName']}"
+ sortable="true"
+ sortBy="#{patient.firstName}"
+ filterBy="#{patient.firstName}"
+ filterEvent="onkeyup">
+ <f:facet name="header">
+ <h:outputText value="#{msg['patient.firstName']}" />
+ </f:facet>
+ <h:outputText value="#{patient.firstName}" />
+ </rich:column>
+ <rich:column id="lastName"
+ headerClass="dataTableHeader"
+ width="150"
+ label="#{msg['patient.lastName']}"
+ sortable="true"
+ sortBy="#{patient.lastName}"
+ filterBy="#{patient.lastName}"
+ filterEvent="onkeyup">
+ <f:facet name="header">
+ <h:outputText value="#{msg['patient.lastName']}" />
+ </f:facet>
+ <h:outputText value="#{patient.lastName}" />
+ </rich:column>
+ <rich:column id="admissionDate"
+ headerClass="dataTableHeader"
+ width="150"
+ label="#{msg['patient.admissionDate']}"
+ sortable="true"
+ sortBy="#{patient.admissionDate}">
+ <f:facet name="header">
+ <h:outputText value="#{msg['patient.admissionDate']}" />
+ </f:facet>
+ <h:outputText value="#{patient.admissionDate}" />
+ </rich:column>
+ </extdt:extendedDataTable>
+ </h:form>
+</body>
+</html>
+</f:view>
\ No newline at end of file
Added: trunk/sandbox/samples/extendedDataTable-sample/target/classes/i18n/messages.properties
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/target/classes/i18n/messages.properties (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/target/classes/i18n/messages.properties 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,5 @@
+demo.title=Extended data table demonstration
+patient.firstName=First name
+patient.id=Id
+patient.lastName=Last name
+patient.admissionDate=Admission date
Added: trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB$1.class
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.class
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/model/impl/DemoPatient.class
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/model/impl/DemoPatient.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.class
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/classes/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/META-INF/MANIFEST.MF
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/META-INF/MANIFEST.MF (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/META-INF/MANIFEST.MF 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/.faces-config.xml.jsfdia
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/.faces-config.xml.jsfdia (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/.faces-config.xml.jsfdia 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PROCESS model-entity="JSFProcess"/>
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB$1.class
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB$1.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.class
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/model/impl/DemoPatient.class
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/model/impl/DemoPatient.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.class
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/classes/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.class
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/faces-config.xml
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/faces-config.xml (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/faces-config.xml 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
+ <managed-bean>
+ <managed-bean-name>extendedDataTableBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.samples.extdt.beans.ExtendedDataTableBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
+ <application>
+ <locale-config>
+ <default-locale>pl</default-locale>
+ <supported-locale>de</supported-locale>
+ <supported-locale>en</supported-locale>
+ </locale-config>
+ <resource-bundle>
+ <base-name>i18n.messages</base-name>
+ <var>msg</var>
+ </resource-bundle>
+ </application>
+</faces-config>
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/cglib-nodep-2.1_3.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/cglib-nodep-2.1_3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-beanutils-1.7.0.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-beanutils-1.7.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-codec-1.3.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-codec-1.3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-collections-3.2.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-collections-3.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-digester-1.8.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-digester-1.8.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-httpclient-3.1.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-httpclient-3.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-io-1.3.1.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-io-1.3.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-lang-2.3.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-lang-2.3.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-logging-1.0.4.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/commons-logging-1.0.4.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/core-3.2.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/core-3.2.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/cssparser-0.9.4.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/cssparser-0.9.4.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/easymock-2.2.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/easymock-2.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/easymockclassextension-2.2.1.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/easymockclassextension-2.2.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/extendedDataTable-3.2.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/extendedDataTable-3.2.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/htmlunit-1.14.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/htmlunit-1.14.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jaxen-1.1.1.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jaxen-1.1.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/js-1.6R7.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/js-1.6R7.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jsf-api-1.2_09-BETA1.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jsf-api-1.2_09-BETA1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jsf-facelets-1.1.14.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jsf-facelets-1.1.14.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jsf-impl-1.2_09-BETA1.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jsf-impl-1.2_09-BETA1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jstl-1.0.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/jstl-1.0.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/nekohtml-0.9.5.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/nekohtml-0.9.5.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-api-3.2.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-api-3.2.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-impl-3.2.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-impl-3.2.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-sandbox-api-3.2.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-sandbox-api-3.2.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-sandbox-impl-3.2.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-sandbox-impl-3.2.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-test-3.2.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-test-3.2.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-ui-3.2.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/richfaces-ui-3.2.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/shale-test-1.0.4.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/shale-test-1.0.4.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/skins-3.2.2-SNAPSHOT.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/skins-3.2.2-SNAPSHOT.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/xercesImpl-2.6.2.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/xercesImpl-2.6.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/xmlParserAPIs-2.6.2.jar
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/lib/xmlParserAPIs-2.6.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/web.xml
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/web.xml (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/WEB-INF/web.xml 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+ <display-name>Archetype Created Web Application</display-name>
+ <context-param>
+ <param-name>javax.faces.CONFIG_FILES</param-name>
+ <param-value>/WEB-INF/faces-config.xml</param-value>
+ </context-param>
+ <context-param>
+ <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
+ <param-value>server</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
+ <param-value>false</param-value>
+ </context-param>
+
+ <filter>
+ <display-name>Ajax4jsf Filter</display-name>
+ <filter-name>ajax4jsf</filter-name>
+ <filter-class>org.ajax4jsf.Filter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>ajax4jsf</filter-name>
+ <servlet-name>Faces Servlet</servlet-name>
+ <dispatcher>REQUEST</dispatcher>
+ <dispatcher>FORWARD</dispatcher>
+ <dispatcher>INCLUDE</dispatcher>
+ </filter-mapping>
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>/faces/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.jsf</url-pattern>
+ </servlet-mapping>
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ </login-config>
+</web-app>
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/index.jsp
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/index.jsp (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/index.jsp 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Insert title here</title>
+</head>
+<body>
+ <jsp:forward page="/pages/inde.jsf"/>
+</body>
+</html>
\ No newline at end of file
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/pages/index.jsp
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/pages/index.jsp (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample/pages/index.jsp 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,18 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+ <html>
+ <head>
+ <title>
+ </title>
+ </head>
+
+<body>
+ <f:view>
+ <h:form>
+ <h:outputText value="#{extendedDataTableBean.testText}" />
+ </h:form>
+ </f:view>
+</body>
+</html>
\ No newline at end of file
Added: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample.war
===================================================================
(Binary files differ)
Property changes on: trunk/sandbox/samples/extendedDataTable-sample/target/extendedDataTable-sample.war
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/sandbox/samples/extendedDataTable-sample/target/war/work/webapp-cache.xml
===================================================================
--- trunk/sandbox/samples/extendedDataTable-sample/target/war/work/webapp-cache.xml (rev 0)
+++ trunk/sandbox/samples/extendedDataTable-sample/target/war/work/webapp-cache.xml 2008-08-04 13:13:58 UTC (rev 9886)
@@ -0,0 +1,53 @@
+<webapp-structure>
+ <registeredFiles>
+ <entry>
+ <string>currentBuild</string>
+ <path-set>
+ <pathsSet class="linked-hash-set">
+ <string>index.jsp</string>
+ <string>META-INF/MANIFEST.MF</string>
+ <string>pages/index.jsp</string>
+ <string>WEB-INF/.faces-config.xml.jsfdia</string>
+ <string>WEB-INF/faces-config.xml</string>
+ <string>WEB-INF/web.xml</string>
+ <string>WEB-INF/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB$1.class</string>
+ <string>WEB-INF/classes/org/richfaces/samples/extdt/beans/ExtendedDataTableBB.class</string>
+ <string>WEB-INF/classes/org/richfaces/samples/extdt/model/impl/DemoPatient.class</string>
+ <string>WEB-INF/classes/org/richfaces/samples/extdt/model/impl/DemoPatientProvider.class</string>
+ <string>WEB-INF/lib/core-3.2.2-SNAPSHOT.jar</string>
+ <string>WEB-INF/lib/richfaces-impl-3.2.2-SNAPSHOT.jar</string>
+ <string>WEB-INF/lib/commons-digester-1.8.jar</string>
+ <string>WEB-INF/lib/commons-beanutils-1.7.0.jar</string>
+ <string>WEB-INF/lib/richfaces-api-3.2.2-SNAPSHOT.jar</string>
+ <string>WEB-INF/lib/commons-collections-3.2.jar</string>
+ <string>WEB-INF/lib/commons-logging-1.0.4.jar</string>
+ <string>WEB-INF/lib/skins-3.2.2-SNAPSHOT.jar</string>
+ <string>WEB-INF/lib/jsf-facelets-1.1.14.jar</string>
+ <string>WEB-INF/lib/jstl-1.0.jar</string>
+ <string>WEB-INF/lib/nekohtml-0.9.5.jar</string>
+ <string>WEB-INF/lib/jsf-api-1.2_09-BETA1.jar</string>
+ <string>WEB-INF/lib/jsf-impl-1.2_09-BETA1.jar</string>
+ <string>WEB-INF/lib/extendedDataTable-3.2.2-SNAPSHOT.jar</string>
+ <string>WEB-INF/lib/richfaces-ui-3.2.2-SNAPSHOT.jar</string>
+ <string>WEB-INF/lib/richfaces-sandbox-impl-3.2.2-SNAPSHOT.jar</string>
+ <string>WEB-INF/lib/richfaces-sandbox-api-3.2.2-SNAPSHOT.jar</string>
+ <string>WEB-INF/lib/richfaces-test-3.2.2-SNAPSHOT.jar</string>
+ <string>WEB-INF/lib/shale-test-1.0.4.jar</string>
+ <string>WEB-INF/lib/htmlunit-1.14.jar</string>
+ <string>WEB-INF/lib/jaxen-1.1.1.jar</string>
+ <string>WEB-INF/lib/xercesImpl-2.6.2.jar</string>
+ <string>WEB-INF/lib/commons-lang-2.3.jar</string>
+ <string>WEB-INF/lib/commons-httpclient-3.1.jar</string>
+ <string>WEB-INF/lib/commons-codec-1.3.jar</string>
+ <string>WEB-INF/lib/js-1.6R7.jar</string>
+ <string>WEB-INF/lib/xmlParserAPIs-2.6.2.jar</string>
+ <string>WEB-INF/lib/cssparser-0.9.4.jar</string>
+ <string>WEB-INF/lib/commons-io-1.3.1.jar</string>
+ <string>WEB-INF/lib/easymock-2.2.jar</string>
+ <string>WEB-INF/lib/easymockclassextension-2.2.1.jar</string>
+ <string>WEB-INF/lib/cglib-nodep-2.1_3.jar</string>
+ </pathsSet>
+ </path-set>
+ </entry>
+ </registeredFiles>
+</webapp-structure>
\ No newline at end of file
16 years, 7 months
JBoss Rich Faces SVN: r9885 - trunk/sandbox/samples.
by richfaces-svn-commits@lists.jboss.org
Author: pkawiak
Date: 2008-08-04 09:09:04 -0400 (Mon, 04 Aug 2008)
New Revision: 9885
Added:
trunk/sandbox/samples/extendedDataTable-sample/
Log:
Initial commit of samples project, .project file included!
16 years, 7 months