JBoss Rich Faces SVN: r3587 - in trunk/ui/message/src/main: java/org/richfaces/component and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: abelevich
Date: 2007-10-29 05:18:31 -0400 (Mon, 29 Oct 2007)
New Revision: 3587
Modified:
trunk/ui/message/src/main/config/component/message.xml
trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessage.java
trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java
trunk/ui/message/src/main/java/org/richfaces/renderkit/RichMessageBaseRenderer.java
trunk/ui/message/src/main/java/org/richfaces/renderkit/html/HtmlRichMessageRenderer.java
trunk/ui/message/src/main/java/org/richfaces/renderkit/html/HtmlRichMessagesRenderer.java
Log:
add level attribute for message and messages component to show only certain category of messages RF-1059
Modified: trunk/ui/message/src/main/config/component/message.xml
===================================================================
--- trunk/ui/message/src/main/config/component/message.xml 2007-10-29 03:12:17 UTC (rev 3586)
+++ trunk/ui/message/src/main/config/component/message.xml 2007-10-29 09:18:31 UTC (rev 3587)
@@ -36,6 +36,14 @@
</test>
</tag>
+ <property>
+ <name>level</name>
+ <classname>java.lang.String</classname>
+ <defaultvalue>"ALL"</defaultvalue>
+ <description>
+ comma-separated list of messages categoris which should be displayed
+ </description>
+ </property>
<property attachedstate="true">
<name>passedLabel</name>
@@ -292,7 +300,16 @@
Attribute should define the label to be displayed when no message appears
</description>
</property>
+ <property>
+ <name>level</name>
+ <classname>java.lang.String</classname>
+ <description>
+ comma-separated list of messages categoris which should be displayed
+ </description>
+ <defaultvalue>"ALL"</defaultvalue>
+ </property>
+
<property>
<name>var</name>
<classname>java.lang.String</classname>
Modified: trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessage.java
===================================================================
--- trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessage.java 2007-10-29 03:12:17 UTC (rev 3586)
+++ trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessage.java 2007-10-29 09:18:31 UTC (rev 3587)
@@ -44,4 +44,9 @@
isPassed = false;
}
+ public abstract String getLevel();
+
+ public abstract void setLevel(String level);
+
+
}
\ No newline at end of file
Modified: trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java
===================================================================
--- trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java 2007-10-29 03:12:17 UTC (rev 3586)
+++ trunk/ui/message/src/main/java/org/richfaces/component/UIRichMessages.java 2007-10-29 09:18:31 UTC (rev 3587)
@@ -16,8 +16,7 @@
private boolean isPassed = false;
-
-
+
public boolean isPassed(){
return isPassed;
}
@@ -36,5 +35,9 @@
isPassed = true;
super.decode(context);
}
-
+
+ public abstract String getLevel();
+
+ public abstract void setLevel(String level);
+
}
Modified: trunk/ui/message/src/main/java/org/richfaces/renderkit/RichMessageBaseRenderer.java
===================================================================
--- trunk/ui/message/src/main/java/org/richfaces/renderkit/RichMessageBaseRenderer.java 2007-10-29 03:12:17 UTC (rev 3586)
+++ trunk/ui/message/src/main/java/org/richfaces/renderkit/RichMessageBaseRenderer.java 2007-10-29 09:18:31 UTC (rev 3587)
@@ -1,17 +1,22 @@
package org.richfaces.renderkit;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import javax.faces.application.FacesMessage;
import javax.faces.application.FacesMessage.Severity;
import javax.faces.component.NamingContainer;
import javax.faces.component.UIComponent;
+import javax.faces.component.UIMessage;
+import javax.faces.component.UIMessages;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import org.ajax4jsf.renderkit.HeaderResourcesRendererBase;
+import org.ajax4jsf.resource.InternetResource;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -30,7 +35,62 @@
public static final String COMPONENT_NOT_FOUND_IN_VIEW_WARN_MESSAGE = "component not found in the view WARNING";
+ private static final String ERROR_NAME = "ERROR";
+ private static final String WARN_NAME = "WARN";
+
+ private static final String FATAL_NAME = "FATAL";
+
+ private static final String INFO_NAME = "INFO";
+
+ private static final String ALL_NAME = "ALL";
+
+ protected List acceptLevels = new ArrayList();
+
+
+ private final InternetResource[] styles = {getResource("/org/richfaces/renderkit/html/css/msg.css"),getResource("/org/richfaces/renderkit/html/css/msgs.css")};
+
+ private InternetResource[] stylesAll = null;
+
+
+ protected InternetResource[] getStyles(){
+ synchronized (this){
+ if(stylesAll == null){
+
+ InternetResource[] rsrcs = super.getStyles();
+ boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
+ boolean ignoreThis = styles == null || styles.length == 0;
+
+ if(ignoreSuper){
+
+ if (ignoreThis) {
+ stylesAll = new InternetResource[0];
+ } else {
+ stylesAll = styles;
+ }
+
+ }else{
+
+ if(ignoreThis){
+ stylesAll = rsrcs;
+ }else{
+ Set rsrcsSet = new java.util.LinkedHashSet();
+ for(int i = 0; i < rsrcs.length; i++ ){
+ rsrcsSet.add(rsrcs[i]);
+ }
+
+ for(int i = 0; i < styles.length; i++ ){
+ rsrcsSet.add(styles[i]);
+ }
+ stylesAll = (InternetResource[]) rsrcsSet.toArray(new InternetResource[rsrcsSet.size()]);
+ }
+ }
+ }
+ }
+
+ return stylesAll;
+ }
+
protected Iterator getMessageIterator(FacesContext context, String forClientId, UIComponent component) throws IOException{
Iterator msgIter = null;
@@ -264,6 +324,49 @@
return retComp;
};
+ protected boolean isAcceptableMessage(FacesMessage message){
+
+ boolean accept = false;
+
+ if(acceptLevels.contains(ALL_NAME)){
+ return true;
+ }
+
+ Severity severity = message.getSeverity();
+
+ if(severity == FacesMessage.SEVERITY_ERROR
+ && acceptLevels.contains(ERROR_NAME)){
+ accept = true;
+
+ }else if(severity == FacesMessage.SEVERITY_FATAL
+ && acceptLevels.contains(FATAL_NAME)){
+ accept = true;
+
+ }else if(severity == FacesMessage.SEVERITY_INFO
+ && acceptLevels.contains(INFO_NAME)){
+ accept = true;
+
+ }else if(severity == FacesMessage.SEVERITY_WARN
+ && acceptLevels.contains(WARN_NAME)){
+ accept = true;
+ }
+
+ return accept;
+ }
+
+ protected List creatAcceptLevels(String [] levels){
+
+ List acceptLevels = new ArrayList();
+
+ for (int i = 0; i < levels.length; i++) {
+ acceptLevels.add(levels[i].toUpperCase());
+ }
+
+ return acceptLevels;
+ }
+
+
+
public abstract void renderMarkerHtml(UIComponent component, UIComponent markerFacet, FacesContext context, ResponseWriter writer,
String markerClass, String markerStyle) throws IOException;
Modified: trunk/ui/message/src/main/java/org/richfaces/renderkit/html/HtmlRichMessageRenderer.java
===================================================================
--- trunk/ui/message/src/main/java/org/richfaces/renderkit/html/HtmlRichMessageRenderer.java 2007-10-29 03:12:17 UTC (rev 3586)
+++ trunk/ui/message/src/main/java/org/richfaces/renderkit/html/HtmlRichMessageRenderer.java 2007-10-29 09:18:31 UTC (rev 3587)
@@ -2,7 +2,6 @@
import java.io.IOException;
import java.util.Iterator;
-import java.util.Set;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
@@ -11,7 +10,6 @@
import javax.faces.context.ResponseWriter;
import org.ajax4jsf.renderkit.RendererUtils.HTML;
-import org.ajax4jsf.resource.InternetResource;
import org.richfaces.component.UIRichMessage;
import org.richfaces.renderkit.RichMessageBaseRenderer;
@@ -22,51 +20,7 @@
*/
public class HtmlRichMessageRenderer extends RichMessageBaseRenderer{
- private final InternetResource[] styles = {getResource("/org/richfaces/renderkit/html/css/msg.css")};
- private InternetResource[] stylesAll = null;
-
-
- protected InternetResource[] getStyles(){
- synchronized (this){
- if(stylesAll == null){
-
- InternetResource[] rsrcs = super.getStyles();
- boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
- boolean ignoreThis = styles == null || styles.length == 0;
-
- if(ignoreSuper){
-
- if (ignoreThis) {
- stylesAll = new InternetResource[0];
- } else {
- stylesAll = styles;
- }
-
- }else{
- if(ignoreThis){
- stylesAll = rsrcs;
- }else{
- Set rsrcsSet = new java.util.LinkedHashSet();
-
- for(int i = 0; i < rsrcs.length; i++ ){
- rsrcsSet.add(rsrcs[i]);
- }
-
- for(int i = 0; i < styles.length; i++ ){
- rsrcsSet.add(styles[i]);
- }
-
- stylesAll = (InternetResource[]) rsrcsSet.toArray(new InternetResource[rsrcsSet.size()]);
- }
- }
- }
- }
-
- return stylesAll;
- }
-
-
protected void doEncodeEnd(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
Iterator msgIter = null;
@@ -105,11 +59,12 @@
ResponseWriter writer = context.getResponseWriter();
- outerStyles(uiMsg, context, writer, facesMsg);
- renderMarkerFacet(uiMsg,context, writer,facesMsg);
- renderLabel(uiMsg, context, writer, facesMsg);
-
-
+ acceptLevels = creatAcceptLevels(uiMsg.getLevel().split(","));
+ if(isAcceptableMessage(facesMsg)){
+ outerStyles(uiMsg, context, writer, facesMsg);
+ renderMarkerFacet(uiMsg,context, writer,facesMsg);
+ renderLabel(uiMsg, context, writer, facesMsg);
+ }
}
public void renderOuterStyles(UIComponent component, FacesContext context, ResponseWriter writer,String outerStyle, String outerClass) throws IOException{
Modified: trunk/ui/message/src/main/java/org/richfaces/renderkit/html/HtmlRichMessagesRenderer.java
===================================================================
--- trunk/ui/message/src/main/java/org/richfaces/renderkit/html/HtmlRichMessagesRenderer.java 2007-10-29 03:12:17 UTC (rev 3586)
+++ trunk/ui/message/src/main/java/org/richfaces/renderkit/html/HtmlRichMessagesRenderer.java 2007-10-29 09:18:31 UTC (rev 3587)
@@ -4,17 +4,18 @@
package org.richfaces.renderkit.html;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Iterator;
-import java.util.Set;
+import java.util.List;
import javax.faces.application.FacesMessage;
+import javax.faces.application.FacesMessage.Severity;
import javax.faces.component.UIComponent;
import javax.faces.component.UIMessages;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import org.ajax4jsf.renderkit.RendererUtils.HTML;
-import org.ajax4jsf.resource.InternetResource;
import org.richfaces.component.UIRichMessages;
import org.richfaces.renderkit.RichMessageBaseRenderer;
@@ -26,55 +27,6 @@
private boolean isWroteTable = false;
- private final InternetResource[] styles = {getResource("/org/richfaces/renderkit/html/css/msgs.css")};
-
- private InternetResource[] stylesAll = null;
-
-
- protected InternetResource[] getStyles(){
-
- synchronized (this){
-
- if(stylesAll == null){
-
- InternetResource[] rsrcs = super.getStyles();
- boolean ignoreSuper = rsrcs == null || rsrcs.length == 0;
- boolean ignoreThis = styles == null || styles.length == 0;
-
- if(ignoreSuper){
-
- if (ignoreThis) {
- stylesAll = new InternetResource[0];
- } else {
- stylesAll = styles;
- }
-
- }else{
-
- if(ignoreThis){
- stylesAll = rsrcs;
- }else{
-
- Set rsrcsSet = new java.util.LinkedHashSet();
- for(int i = 0; i < rsrcs.length; i++ ){
- rsrcsSet.add(rsrcs[i]);
- }
-
- for(int i = 0; i < styles.length; i++ ){
- rsrcsSet.add(styles[i]);
- }
-
- stylesAll = (InternetResource[]) rsrcsSet.toArray(new InternetResource[rsrcsSet.size()]);
- }
-
- }
-
- }
- }
-
- return stylesAll;
- }
-
protected void doEncodeEnd(ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {
String forIds = null;
@@ -101,6 +53,11 @@
boolean isDisplayNone = (!messagesIter.hasNext() && !uiMessages.isPassed()) ? true : false;
+ if(!isDisplayNone){
+ String [] levels = uiMessages.getLevel().split(",");
+ acceptLevels = creatAcceptLevels(levels);
+ }
+
layout = (String)uiMessages.getAttributes().get("layout");
if((layout != null) && (layout.equals("table"))){
@@ -127,6 +84,7 @@
while(messagesIter.hasNext()){
FacesMessage facesMsg = (FacesMessage)(messagesIter.next());
+
renderBody(uiMessages, context, writer, facesMsg);
}
@@ -141,6 +99,8 @@
}
+
+
public void renderLabelHtml(UIComponent component, FacesContext context, ResponseWriter writer,
FacesMessage facesMsg, String labelClass, String labelStyle, String passLabel) throws IOException {
@@ -274,24 +234,26 @@
if(uiMessages.isPassed() || facesMsg != null ){
- if(isWroteTable){
- writer.startElement(HTML.TR_ELEMENT, uiMessages);
- writer.startElement(HTML.td_ELEM, uiMessages);
- }else{
- writer.startElement("dt", uiMessages);
- }
-
- outerStyles(uiMessages, context, writer, facesMsg);
- renderMarkerFacet(uiMessages, context, writer, facesMsg);
- renderLabel(uiMessages, context, writer, facesMsg);
-
- if(isWroteTable){
- writer.endElement(HTML.td_ELEM);
- writer.endElement(HTML.TR_ELEMENT);
- }else{
- writer.endElement("dt");
- }
+ if(isAcceptableMessage(facesMsg)){
+ if(isWroteTable){
+ writer.startElement(HTML.TR_ELEMENT, uiMessages);
+ writer.startElement(HTML.td_ELEM, uiMessages);
+ }else{
+ writer.startElement("dt", uiMessages);
+ }
+
+ outerStyles(uiMessages, context, writer, facesMsg);
+ renderMarkerFacet(uiMessages, context, writer, facesMsg);
+ renderLabel(uiMessages, context, writer, facesMsg);
+
+ if(isWroteTable){
+ writer.endElement(HTML.td_ELEM);
+ writer.endElement(HTML.TR_ELEMENT);
+ }else{
+ writer.endElement("dt");
+ }
+ }
}
}
16 years, 6 months
JBoss Rich Faces SVN: r3586 - trunk/sandbox/ui/panel2/src/test/java/org/richfaces/taglib.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-10-28 23:12:17 -0400 (Sun, 28 Oct 2007)
New Revision: 3586
Modified:
trunk/sandbox/ui/panel2/src/test/java/org/richfaces/taglib/Panel2TagTest.java
Log:
Panel2TagTest.java updated to use MockValueExpression
Modified: trunk/sandbox/ui/panel2/src/test/java/org/richfaces/taglib/Panel2TagTest.java
===================================================================
--- trunk/sandbox/ui/panel2/src/test/java/org/richfaces/taglib/Panel2TagTest.java 2007-10-29 03:11:38 UTC (rev 3585)
+++ trunk/sandbox/ui/panel2/src/test/java/org/richfaces/taglib/Panel2TagTest.java 2007-10-29 03:12:17 UTC (rev 3586)
@@ -3,26 +3,12 @@
*/
package org.richfaces.taglib;
-import java.io.IOException;
-import java.util.Enumeration;
-
import javax.faces.webapp.UIComponentTag;
-import javax.servlet.Servlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.el.ExpressionEvaluator;
-import javax.servlet.jsp.el.VariableResolver;
import javax.servlet.jsp.tagext.Tag;
import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+import org.apache.shale.test.el.MockValueExpression;
import org.richfaces.component.html.HtmlPanel2;
/**
@@ -86,8 +72,8 @@
*/
public void testSetPropertiesUIComponent() throws JspException {
HtmlPanel2 panel = new HtmlPanel2();
- panelTag.setBodyClass("panel");
- panelTag.setHeaderClass("headClass");
+ panelTag.setBodyClass(new MockValueExpression("panel", String.class));
+ panelTag.setHeaderClass(new MockValueExpression("headClass", String.class));
panelTag.setProperties(panel);
assertEquals("panel", panel.getBodyClass());
assertEquals("headClass", panel.getHeaderClass());
16 years, 6 months
JBoss Rich Faces SVN: r3585 - trunk/sandbox/samples/listShuttleDemo.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-10-28 23:11:38 -0400 (Sun, 28 Oct 2007)
New Revision: 3585
Modified:
trunk/sandbox/samples/listShuttleDemo/pom.xml
Log:
orderingList & listShuttle components updated:
- pom.xml
- sandbox added to group
- required dependencies added & excess removed
- listShuttle renamed to orderingList
- orderingListDemo: beans & demo page added
- orderinList: added rendering of table using AbstractRowsRenderer from dataTable
Modified: trunk/sandbox/samples/listShuttleDemo/pom.xml
===================================================================
--- trunk/sandbox/samples/listShuttleDemo/pom.xml 2007-10-29 03:11:34 UTC (rev 3584)
+++ trunk/sandbox/samples/listShuttleDemo/pom.xml 2007-10-29 03:11:38 UTC (rev 3585)
@@ -1,16 +1,23 @@
-<?xml version="1.0"?><project>
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>samples</artifactId>
<groupId>org.richfaces.sandbox</groupId>
<version>3.2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.richfaces</groupId>
+ <groupId>org.richfaces.sandbox.samples</groupId>
<artifactId>listShuttleDemo</artifactId>
<packaging>war</packaging>
<name>listShuttleDemo Maven Webapp</name>
- <version>1.0-SNAPSHOT</version>
<build>
<finalName>listShuttleDemo</finalName>
</build>
+ <dependencies>
+ <dependency>
+ <groupId>org.richfaces.sandbox.ui</groupId>
+ <artifactId>listShuttle</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
</project>
\ No newline at end of file
16 years, 6 months
JBoss Rich Faces SVN: r3584 - in trunk/sandbox/samples/orderingListDemo: src/main/java/org/richfaces and 2 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-10-28 23:11:34 -0400 (Sun, 28 Oct 2007)
New Revision: 3584
Added:
trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OptionItem.java
trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OrderingListDemoBean.java
Modified:
trunk/sandbox/samples/orderingListDemo/pom.xml
trunk/sandbox/samples/orderingListDemo/src/main/webapp/WEB-INF/faces-config.xml
trunk/sandbox/samples/orderingListDemo/src/main/webapp/WEB-INF/web.xml
trunk/sandbox/samples/orderingListDemo/src/main/webapp/pages/index.jsp
Log:
orderingList & listShuttle components updated:
- pom.xml
- sandbox added to group
- required dependencies added & excess removed
- listShuttle renamed to orderingList
- orderingListDemo: beans & demo page added
- orderinList: added rendering of table using AbstractRowsRenderer from dataTable
Modified: trunk/sandbox/samples/orderingListDemo/pom.xml
===================================================================
--- trunk/sandbox/samples/orderingListDemo/pom.xml 2007-10-29 03:11:27 UTC (rev 3583)
+++ trunk/sandbox/samples/orderingListDemo/pom.xml 2007-10-29 03:11:34 UTC (rev 3584)
@@ -1,16 +1,23 @@
-<?xml version="1.0"?><project>
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>samples</artifactId>
<groupId>org.richfaces.sandbox</groupId>
<version>3.2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.richfaces</groupId>
+ <groupId>org.richfaces.sandbox.samples</groupId>
<artifactId>orderingListDemo</artifactId>
<packaging>war</packaging>
<name>orderingListDemo Maven Webapp</name>
- <version>1.0-SNAPSHOT</version>
<build>
<finalName>orderingListDemo</finalName>
</build>
+ <dependencies>
+ <dependency>
+ <groupId>org.richfaces.sandbox.ui</groupId>
+ <artifactId>orderingList</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
</project>
\ No newline at end of file
Added: trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OptionItem.java
===================================================================
--- trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OptionItem.java (rev 0)
+++ trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OptionItem.java 2007-10-29 03:11:34 UTC (rev 3584)
@@ -0,0 +1,24 @@
+package org.richfaces;
+
+public class OptionItem {
+ private String name;
+ private int price;
+
+ public OptionItem(String name, int price) {
+ super();
+ this.name = name;
+ this.price = price;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void action() {
+ System.out.println("OptionItem.action(): " + name + " " + price);
+ }
+}
Added: trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OrderingListDemoBean.java
===================================================================
--- trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OrderingListDemoBean.java (rev 0)
+++ trunk/sandbox/samples/orderingListDemo/src/main/java/org/richfaces/OrderingListDemoBean.java 2007-10-29 03:11:34 UTC (rev 3584)
@@ -0,0 +1,20 @@
+package org.richfaces;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+public class OrderingListDemoBean {
+
+ private List<OptionItem> items = new ArrayList<OptionItem>();
+
+ public OrderingListDemoBean() {
+ for (int i = 0; i < 10; i++) {
+ items.add(new OptionItem("Item " + i, new Random().nextInt(200)));
+ }
+ }
+
+ public List<OptionItem> getItems() {
+ return items;
+ }
+}
Modified: trunk/sandbox/samples/orderingListDemo/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/sandbox/samples/orderingListDemo/src/main/webapp/WEB-INF/faces-config.xml 2007-10-29 03:11:27 UTC (rev 3583)
+++ trunk/sandbox/samples/orderingListDemo/src/main/webapp/WEB-INF/faces-config.xml 2007-10-29 03:11:34 UTC (rev 3584)
@@ -7,4 +7,9 @@
<managed-bean-class>org.richfaces.Bean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
+ <managed-bean>
+ <managed-bean-name>demoBean</managed-bean-name>
+ <managed-bean-class>org.richfaces.OrderingListDemoBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
</faces-config>
Modified: trunk/sandbox/samples/orderingListDemo/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/sandbox/samples/orderingListDemo/src/main/webapp/WEB-INF/web.xml 2007-10-29 03:11:27 UTC (rev 3583)
+++ trunk/sandbox/samples/orderingListDemo/src/main/webapp/WEB-INF/web.xml 2007-10-29 03:11:34 UTC (rev 3584)
@@ -10,6 +10,10 @@
<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>
Modified: trunk/sandbox/samples/orderingListDemo/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/sandbox/samples/orderingListDemo/src/main/webapp/pages/index.jsp 2007-10-29 03:11:27 UTC (rev 3583)
+++ trunk/sandbox/samples/orderingListDemo/src/main/webapp/pages/index.jsp 2007-10-29 03:11:34 UTC (rev 3584)
@@ -1,12 +1,23 @@
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://labs.jboss.com/jbossrichfaces/ui/ui/orderingList" prefix="ol" %>
+
<html>
<head>
<title></title>
</head>
<body>
<f:view>
-
+ <h:form>
+ <ol:orderingList value="#{demoBean.items}" var="item">
+ <h:column>
+ <h:outputText value="#{item.name}" />
+ </h:column>
+ <h:column>
+ <h:outputText value="#{item.price}" />
+ </h:column>
+ </ol:orderingList>
+ </h:form>
</f:view>
</body>
</html>
16 years, 6 months
JBoss Rich Faces SVN: r3583 - in trunk/sandbox/ui/orderingList: src/main/config/component and 5 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-10-28 23:11:27 -0400 (Sun, 28 Oct 2007)
New Revision: 3583
Added:
trunk/sandbox/ui/orderingList/src/main/config/component/orderinglist.xml
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx
Removed:
trunk/sandbox/ui/orderingList/src/main/config/component/selectordershuttle.xml
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UISelectOrderShuttle.java
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/html/
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/selectOrderShuttle.xcss
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/SelectOrderShuttle.js
trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlSelectOrderShuttle.jspx
Modified:
trunk/sandbox/ui/orderingList/pom.xml
Log:
orderingList & listShuttle components updated:
- pom.xml
- sandbox added to group
- required dependencies added & excess removed
- listShuttle renamed to orderingList
- orderingListDemo: beans & demo page added
- orderinList: added rendering of table using AbstractRowsRenderer from dataTable
Modified: trunk/sandbox/ui/orderingList/pom.xml
===================================================================
--- trunk/sandbox/ui/orderingList/pom.xml 2007-10-29 03:11:15 UTC (rev 3582)
+++ trunk/sandbox/ui/orderingList/pom.xml 2007-10-29 03:11:27 UTC (rev 3583)
@@ -1,14 +1,14 @@
-<?xml version="1.0"?><project>
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>ui</artifactId>
<groupId>org.richfaces.sandbox</groupId>
<version>3.2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.richfaces</groupId>
+ <groupId>org.richfaces.sandbox.ui</groupId>
<artifactId>orderingList</artifactId>
<name>orderingList</name>
- <version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
@@ -33,18 +33,12 @@
</configuration>
</plugin>
</plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.richfaces.framework</groupId>
- <artifactId>richfaces-impl</artifactId>
- <version>3.2.0-SNAPSHOT</version>
- </dependency>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.richfaces.ui</groupId>
+ <artifactId>dataTable</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Copied: trunk/sandbox/ui/orderingList/src/main/config/component/orderinglist.xml (from rev 3579, trunk/sandbox/ui/orderingList/src/main/config/component/selectordershuttle.xml)
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/config/component/orderinglist.xml (rev 0)
+++ trunk/sandbox/ui/orderingList/src/main/config/component/orderinglist.xml 2007-10-29 03:11:27 UTC (rev 3583)
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN" "https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" >
+<components>
+ <component>
+ <name>org.richfaces.OrderingList</name>
+ <family>org.richfaces.OrderingList</family>
+ <classname>org.richfaces.component.html.HtmlOrderingList</classname>
+ <superclass>org.richfaces.component.UIOrderingList</superclass>
+ <description>
+ </description>
+
+ <renderer generate="true" override="true">
+ <name>org.richfaces.OrderingListRenderer</name>
+ <template>org/richfaces/htmlOrderingList.jspx</template>
+ </renderer>
+
+ <tag>
+ <name>orderingList</name>
+ <classname>org.richfaces.taglib.OrderingListTag</classname>
+ <superclass>
+ org.ajax4jsf.webapp.taglib.HtmlComponentTagBase
+ </superclass>
+ <test/>
+ </tag>
+
+ <taghandler generate="true">
+ <classname>org.richfaces.taglib.OrderingListTagHandler</classname>
+ <superclass>com.sun.facelets.tag.jsf.ComponentHandler</superclass>
+ </taghandler>
+
+ &ui_component_attributes;
+
+ <property>
+ <name>onmousemove</name>
+ <classname>java.lang.String</classname>
+ <description>
+ HTML: script expression; a pointer was moved within.
+ </description>
+ <defaultvalue><![CDATA[""]]></defaultvalue>
+ </property>
+
+ </component>
+</components>
Deleted: trunk/sandbox/ui/orderingList/src/main/config/component/selectordershuttle.xml
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/config/component/selectordershuttle.xml 2007-10-29 03:11:15 UTC (rev 3582)
+++ trunk/sandbox/ui/orderingList/src/main/config/component/selectordershuttle.xml 2007-10-29 03:11:27 UTC (rev 3583)
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE components PUBLIC "-//AJAX4JSF//CDK Generator config/EN" "https://ajax4jsf.dev.java.net/nonav/dtds/component-config.dtd" >
-<components>
- <component>
- <name>org.richfaces.SelectOrderShuttle</name>
- <family>org.richfaces.SelectOrderShuttle</family>
- <classname>org.richfaces.component.html.HtmlSelectOrderShuttle</classname>
- <superclass>org.richfaces.component.UISelectOrderShuttle</superclass>
- <description>
- </description>
-
- <renderer generate="true" override="true">
- <name>org.richfaces.SelectOrderShuttleRenderer</name>
- <template>org/richfaces/htmlSelectOrderShuttle.jspx</template>
- </renderer>
-
- <tag>
- <name>selectOrderShuttle</name>
- <classname>org.richfaces.taglib.SelectOrderShuttleTag</classname>
- <superclass>
- org.ajax4jsf.webapp.taglib.HtmlComponentTagBase
- </superclass>
- <test/>
- </tag>
-
- <taghandler generate="true">
- <classname>org.richfaces.taglib.SelectOrderShuttleTagHandler</classname>
- <superclass>com.sun.facelets.tag.jsf.ComponentHandler</superclass>
- </taghandler>
-
- &ui_component_attributes;
-
- <property>
- <name>onmousemove</name>
- <classname>java.lang.String</classname>
- <description>
- HTML: script expression; a pointer was moved within.
- </description>
- <defaultvalue><![CDATA[""]]></defaultvalue>
- </property>
-
- </component>
-</components>
Copied: trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java (from rev 3579, trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UISelectOrderShuttle.java)
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java (rev 0)
+++ trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java 2007-10-29 03:11:27 UTC (rev 3583)
@@ -0,0 +1,42 @@
+package org.richfaces.component;
+
+import java.util.Iterator;
+
+import org.ajax4jsf.component.UIDataAdaptor;
+import org.ajax4jsf.model.DataComponentState;
+import org.ajax4jsf.model.ExtendedDataModel;
+import org.ajax4jsf.model.RepeatState;
+import org.ajax4jsf.model.SequenceDataModel;
+import org.apache.commons.collections.iterators.EmptyIterator;
+
+public abstract class UIOrderingList extends UIDataAdaptor {
+
+ @Override
+ protected DataComponentState createComponentState() {
+ return new RepeatState();
+ }
+
+ @Override
+ protected ExtendedDataModel createDataModel() {
+ return new SequenceDataModel(super.getDataModel());
+ }
+
+ @Override
+ protected Iterator dataChildren() {
+ if (getChildCount() != 0) {
+ return getChildren().iterator();
+ } else {
+ return EmptyIterator.INSTANCE;
+ }
+ }
+
+ @Override
+ protected Iterator fixedChildren() {
+ if (getFacetCount() != 0) {
+ return getFacets().values().iterator();
+ } else {
+ return EmptyIterator.INSTANCE;
+ }
+ }
+
+}
Deleted: trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UISelectOrderShuttle.java
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UISelectOrderShuttle.java 2007-10-29 03:11:15 UTC (rev 3582)
+++ trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/component/UISelectOrderShuttle.java 2007-10-29 03:11:27 UTC (rev 3583)
@@ -1,8 +0,0 @@
-package org.richfaces.component;
-
-import javax.faces.component.UIComponentBase;
-
-public abstract class UISelectOrderShuttle extends UIComponentBase {
-
-
-}
Added: trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java (rev 0)
+++ trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-10-29 03:11:27 UTC (rev 3583)
@@ -0,0 +1,65 @@
+package org.richfaces.renderkit;
+
+import java.io.IOException;
+import java.util.List;
+
+import javax.faces.component.UIColumn;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+
+import org.ajax4jsf.component.UIDataAdaptor;
+import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.richfaces.component.UIOrderingList;
+
+public abstract class OrderingListRendererBase extends AbstractRowsRenderer {
+
+ protected Class getComponentClass() {
+ return UIOrderingList.class;
+ }
+
+ public boolean getRendersChildren() {
+ return true;
+ }
+
+ @Override
+ public void encodeOneRow(FacesContext context, TableHolder holder)
+ throws IOException {
+
+ ResponseWriter writer = context.getResponseWriter();
+ UIDataAdaptor table = holder.getTable();
+
+ writer.startElement(HTML.TR_ELEMENT, table);
+ writer.writeAttribute(HTML.id_ATTRIBUTE, table.getClientId(context), null);
+
+ List<UIComponent> children = table.getChildren();
+ for (UIComponent component : children) {
+ if (component instanceof UIColumn && component.isRendered()) {
+ UIColumn column = (UIColumn) component;
+
+ writer.startElement(HTML.td_ELEM, table);
+
+ renderChildren(context, column);
+
+ writer.endElement(HTML.td_ELEM);
+ }
+ }
+
+ writer.endElement(HTML.TR_ELEMENT);
+ }
+
+ public void encodeChildren(FacesContext context, UIComponent component) throws IOException {
+ encodeRows(context, component);
+ }
+
+ public String initJSShuttleObject(FacesContext context, UIOrderingList component) {
+ StringBuffer script = new StringBuffer();
+ script.append("var shuttleItems = new Array();");
+ script.append("for (var i = 9; i > 0; i--) {");
+ script.append("shuttleItems[9-i] = new SelectItem('Item ' + i, i, 'description' + i, null, false);");
+ script.append("}");
+ script.append("var shuttle = new Shuttle('").append(component.getClientId(context)).append("', shuttleItems);");
+ //script.append(" shuttle.init();");
+ return script.toString();
+ }
+}
Copied: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss (from rev 3579, trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/selectOrderShuttle.xcss)
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss (rev 0)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-10-29 03:11:27 UTC (rev 3583)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<f:template xmlns:f='http:/jsf.exadel.com/template'
+ xmlns:u='http:/jsf.exadel.com/template/util'
+ xmlns="http://www.w3.org/1999/xhtml" >
+
+<f:verbatim><![CDATA[
+.selectedItem {
+ color: white;
+ background-color: blue;
+}
+.normalItem {
+ background-color: white;
+ color: black;
+}
+.activeItem {
+ color: white;
+ background-color: brown;
+ border: 1px black dotted;
+}
+
+.body {
+ -moz-user-select: none;
+}
+]]>
+
+</f:verbatim>
+</f:template>
\ No newline at end of file
Deleted: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/selectOrderShuttle.xcss
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/selectOrderShuttle.xcss 2007-10-29 03:11:15 UTC (rev 3582)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/selectOrderShuttle.xcss 2007-10-29 03:11:27 UTC (rev 3583)
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<f:template xmlns:f='http:/jsf.exadel.com/template'
- xmlns:u='http:/jsf.exadel.com/template/util'
- xmlns="http://www.w3.org/1999/xhtml" >
-
-<f:verbatim><![CDATA[
-.selectedItem {
- color: white;
- background-color: blue;
-}
-.normalItem {
- background-color: white;
- color: black;
-}
-.activeItem {
- color: white;
- background-color: brown;
- border: 1px black dotted;
-}
-
-.body {
- -moz-user-select: none;
-}
-]]>
-
-</f:verbatim>
-</f:template>
\ No newline at end of file
Copied: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js (from rev 3579, trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/SelectOrderShuttle.js)
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js (rev 0)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-10-29 03:11:27 UTC (rev 3583)
@@ -0,0 +1,317 @@
+Array.prototype.remove = function(object) {
+
+ var index = this.indexOf(object, 0, this.length);
+ if (index == 0) {
+ this.shift();
+ } else {
+ this.splice(index, 1);
+ }
+}
+
+Shuttle = function(containerId, shuttleItems) {
+ this.container = document.getElementById(containerId);
+ this.shuttleTable = document.getElementById(this.container.id + "table");
+ this.shuttleTbody = document.getElementById(this.container.id + "tbody");
+ this.shuttle = this.shuttleTbody;
+
+ this.items = null;
+ this.selectedItems = new Array();
+
+
+ this.shuttleItems = new Array();
+
+ var rows = this.shuttleTable.rows;
+ var shuttle = this;
+
+ for (var i = 0; i < rows.length; i++) {
+ var row = rows[i];
+ this.shuttleItems.push(new SelectItem("", i, "", row.id, false, row));
+ row.onclick = function(e) {
+ e = (window.event || e);
+ shuttle.onclickHandler(e);
+ }
+ }
+
+ //this.shuttleItems = shuttleItems;
+
+ //this.shuttle = null;
+ this.sortOrder = Shuttle.ASC;
+
+ //this.shuttleTable = null;
+ //this.shuttleTbody = null;
+
+ this.activeItem = null;
+}
+
+Shuttle.ASC = "acs";
+Shuttle.DESC = "desc";
+Shuttle.SELECTED_ITEM_CLASS = "selectedItem";
+Shuttle.NORMAL_ITEM_CLASS = "normalItem";
+Shuttle.ACTIVE_ITEM_CLASS = "activeItem";
+
+Shuttle.prototype.add = function(selectItem) {
+ this.createShuttleItem(selectItem, this.shuttle);
+}
+
+Shuttle.prototype.addList = function(shuttleItems) {
+ for (var i = 0; i < shuttleItems.length; i++) {
+ this.add(shuttleItems[i]);
+ }
+}
+
+Shuttle.prototype.remove = function() {
+
+}
+
+Shuttle.prototype.removeList = function() {
+
+}
+
+Shuttle.prototype.sort = function() {
+ if (this.sortOrder == Shuttle.ASC) {
+ this.shuttleItems.sort(this.compare);
+ this.sortOrder = Shuttle.DESC;
+ } else {
+ this.shuttleItems.reverse();
+ this.sortOrder = Shuttle.ASC;
+ }
+ this.rebuild();
+}
+
+Shuttle.prototype.moveSelectedItems = function(action) {
+ var rows = this.shuttleTbody.rows;
+ var item;
+ this.selectedItems.sort(this.compareByRowIndex);
+ if ((action == 'up') && this.getExtremeItem("first").previousSibling) {
+ for (var i = 0; i < this.selectedItems.length; i++) {
+ item = this.selectedItems[i];
+ item.parentNode.insertBefore(item, item.previousSibling);
+ }
+ } else if ((action == 'down') && this.getExtremeItem("last").nextSibling) {
+ for (var i = this.selectedItems.length - 1; i > -1; i--) {
+ item = this.selectedItems[i];
+ item.parentNode.insertBefore(item.nextSibling, item);
+ }
+ } else if (action == 'first') {
+ var incr = this.selectedItems[0].rowIndex;
+ for (var i = 0; i < this.selectedItems.length; i++) {
+ item = this.selectedItems[i];
+ item.parentNode.insertBefore(item, rows[item.rowIndex - incr]);
+ }
+ } else if (action == 'last') {
+ var length = this.shuttleItems.length;
+ var incr = length - this.selectedItems[this.selectedItems.length - 1].rowIndex;
+ for (var i = this.selectedItems.length - 1; i > -1; i--) {
+ item = this.selectedItems[i];
+ if (item.rowIndex + incr > length - 1) {
+ item.parentNode.insertBefore(item, null);
+ } else {
+ item.parentNode.insertBefore(item, rows[item.rowIndex + incr]);
+ }
+ }
+ }
+}
+
+Shuttle.prototype.getExtremeItem = function(position) {
+ var extremeItem = this.selectedItems[0];
+ var currentItem;
+
+ for (var i = 1; i < this.selectedItems.length; i++) {
+ currentItem = this.selectedItems[i];
+ if (position == "first") {
+ if (currentItem.rowIndex < extremeItem.rowIndex) {
+ extremeItem = currentItem;
+ }
+ } else {
+ if (currentItem.rowIndex > extremeItem.rowIndex) {
+ extremeItem = currentItem;
+ }
+ }
+ }
+ return extremeItem;
+}
+
+Shuttle.prototype.getLastSelectedItem = function() {
+
+}
+
+Shuttle.prototype.onclickHandler = function(event) {
+ //this.selectItem(event.srcElement);
+ var activeElem = event.target || event.srcElement;
+ if (activeElem == null) {
+ return;
+ }
+
+ while (activeElem.tagName.toLowerCase() != "tr") {
+ activeElem = activeElem.parentNode;
+ }
+
+ if (event.ctrlKey) {
+ this.addSelectedItem(activeElem);
+ //FIX
+ } else if (event.shiftKey) {
+ this.selectItemGroup(activeElem);
+ } else {
+ this.selectItem(activeElem);
+ }
+ activeElem.className = Shuttle.ACTIVE_ITEM_CLASS;
+ this.activeItem = activeElem;
+}
+
+/**
+ * Click handler
+ */
+Shuttle.prototype.selectItem = function(activeItem) {
+ var markedItem = this.getSelectItemById(activeItem.id);
+ var markedShuttleItem = activeItem;
+
+ if (markedItem != null) {
+ if (markedItem._selected) {
+ this.resetMarked();
+ markedItem._selected = false;
+ } else {
+ this.resetMarked();
+
+ markedItem._selected = true;
+ //markedShuttleItem.className = Shuttle.ACTIVE_ITEM_CLASS;
+ this.selectedItems[0] = markedShuttleItem;
+ }
+ }
+}
+
+/**
+ * CTRL+Click handler
+ */
+Shuttle.prototype.addSelectedItem = function(activeItem) {
+ var markedItem = this.getSelectItemById(activeItem.id);
+ var markedShuttleItem = activeItem;
+
+ if (markedItem._selected) {
+ //this.activeItem.className = Shuttle.NORMAL_ITEM_CLASS;
+ this.selectedItems.remove(markedShuttleItem);
+ markedItem._selected = false;
+ } else {
+ markedItem._selected = true;
+ //markedShuttleItem.className = Shuttle.SELECTED_ITEM_CLASS;
+ this.selectedItems.push(markedShuttleItem);
+ }
+ this.activeItem.className = Shuttle.SELECTED_ITEM_CLASS;
+
+ if (this.activeItem && !this.getSelectItemById(this.activeItem.id)._selected) {
+ this.activeItem.className = Shuttle.NORMAL_ITEM_CLASS;
+ }
+}
+
+/**
+ * Shift+Click handler
+ */
+Shuttle.prototype.selectItemGroup = function(activeItem) {
+ var lastItemIndex = this.activeItem.rowIndex;
+ var startIndex;
+ var endIndex;
+ this.resetMarked();
+ if (activeItem.rowIndex > lastItemIndex) {
+ startIndex = lastItemIndex;
+ endIndex = activeItem.rowIndex;
+ } else {
+ startIndex = activeItem.rowIndex;
+ endIndex = lastItemIndex;
+ }
+ var rows = this.shuttleTbody.rows;
+ for (var i = startIndex; i <= endIndex; i++) {
+ rows[i].className = Shuttle.SELECTED_ITEM_CLASS;
+ this.selectedItems.push(rows[i]);
+ this.getSelectItemById(rows[i].id)._selected = true;
+ }
+}
+
+Shuttle.prototype.resetMarked = function() {
+ var rows = this.shuttleTbody.rows;
+ for (var i = 0; i < rows.length; i++) {
+ var shuttleItem = rows[i];
+ shuttleItem.className = Shuttle.NORMAL_ITEM_CLASS;
+ this.getSelectItemById(shuttleItem.id)._selected = false; //FIXME
+ }
+ this.selectedItems.length = 0;
+}
+
+Shuttle.prototype.getSelectItemById = function(selectItemId) {
+ for (var i = 0; i < this.shuttleItems.length; i++) {
+ var item = this.shuttleItems[i];
+ if (selectItemId == item._id) {
+ return item;
+ }
+ }
+ return null
+}
+
+Shuttle.prototype.init = function() {
+ this.addList(this.shuttleItems);
+ //this.shuttleTable.appendChild(this.shuttle)
+ //this.container.appendChild(this.shuttleTable);
+
+}
+
+Shuttle.prototype.rebuild = function() {
+ this.shuttle = document.createElement("tbody");
+
+ for (var i = 0; i < this.shuttleItems.length; i++) {
+ this.shuttle.appendChild(this.shuttleItems[i]._node);
+ }
+ this.shuttleTbody.parentNode.removeChild(this.shuttleTbody);
+ this.shuttleTable.appendChild(this.shuttle);
+ this.shuttleTbody = this.shuttleTable.tBodies[0];
+}
+//--------------------------------
+Shuttle.prototype.createShuttleItem = function(selectItem, elemContainer) {
+ var tr = document.createElement("tr");
+ elemContainer.appendChild(tr);
+ tr.id = selectItem._id
+ //elemContainer.append('<tr id="').append(selectItem._id).append('" ');
+ var className = null;
+ if (selectItem._selected) {
+ className = Shuttle.SELECTED_ITEM_CLASS;
+ } else if (this.activeItem && (this.activeItem == selectItem)) {
+ className = Shuttle.ACTIVE_ITEM_CLASS;
+ } else {
+ className = Shuttle.NORMAL_ITEM_CLASS;
+ }
+ //elemContainer.append('class="').append(className);
+ tr.className = className;
+ var obj = this;
+ tr.onclick = function(e) {
+ e = (window.event || e);
+ obj.onclickHandler(e);
+ }
+ //elemContainer.append('" onclick="shuttle.onclickHandler(window.event||event);"');
+ //elemContainer.append('>').append('<td>');
+ var td = document.createElement("td");
+ tr.appendChild(td);
+ if (td.textContent == undefined) {
+ td.innerText = selectItem._label;
+ } else {
+ td.textContent = selectItem._label;
+ }
+ selectItem._node = tr;
+ //elemContainer.append(selectItem._label);
+ //elemContainer.append('</td><td width="0">');
+ //this.createValueKeeper(selectItem, elemContainer);
+ //elemContainer.append('</td></tr>');
+}
+
+Shuttle.prototype.compare = function(obj1, obj2) {
+ obj1 = obj1._label;
+ obj2 = obj2._label;
+ return ((obj1 == obj2) ? 0 : ((obj1 < obj2) ? -1 : 1));
+}
+
+Shuttle.prototype.compareByRowIndex = function(obj1, obj2) {
+ obj1 = obj1.rowIndex;
+ obj2 = obj2.rowIndex;
+ return ((obj1 == obj2) ? 0 : ((obj1 < obj2) ? -1 : 1));
+}
+
+Shuttle.prototype.createValueKeeper = function(selectItem, elemContainer) {
+ elemContainer.append('<input type="hidden" value="')
+ .append(selectItem._value).append('"/>');
+}
Deleted: trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/SelectOrderShuttle.js
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/SelectOrderShuttle.js 2007-10-29 03:11:15 UTC (rev 3582)
+++ trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/SelectOrderShuttle.js 2007-10-29 03:11:27 UTC (rev 3583)
@@ -1,300 +0,0 @@
-Array.prototype.remove = function(object) {
-
- var index = this.indexOf(object, 0, this.length);
- if (index == 0) {
- this.shift();
- } else {
- this.splice(index, 1);
- }
-}
-
-Shuttle = function(containerId, shuttleItems) {
- this.container = document.getElementById(containerId);
- this.items = null;
- this.selectedItems = new Array();
- this.shuttleItems = shuttleItems;
-
- this.shuttle = null;
- this.sortOrder = Shuttle.ASC;
-
- this.shuttleTable = null;
- this.shuttleTbody = null;
-
- this.activeItem = null;
-}
-
-Shuttle.ASC = "acs";
-Shuttle.DESC = "desc";
-Shuttle.SELECTED_ITEM_CLASS = "selectedItem";
-Shuttle.NORMAL_ITEM_CLASS = "normalItem";
-Shuttle.ACTIVE_ITEM_CLASS = "activeItem";
-
-Shuttle.prototype.add = function(selectItem) {
- this.createShuttleItem(selectItem, this.shuttle);
-}
-
-Shuttle.prototype.addList = function(shuttleItems) {
- for (var i = 0; i < shuttleItems.length; i++) {
- this.add(shuttleItems[i]);
- }
-}
-
-Shuttle.prototype.remove = function() {
-
-}
-
-Shuttle.prototype.removeList = function() {
-
-}
-
-Shuttle.prototype.sort = function() {
- if (this.sortOrder == Shuttle.ASC) {
- this.shuttleItems.sort(this.compare);
- this.sortOrder = Shuttle.DESC;
- } else {
- this.shuttleItems.reverse();
- this.sortOrder = Shuttle.ASC;
- }
- this.rebuild();
-}
-
-Shuttle.prototype.moveSelectedItems = function(action) {
- var rows = this.shuttleTbody.rows;
- var item;
- this.selectedItems.sort(this.compareByRowIndex);
- if ((action == 'up') && this.getExtremeItem("first").previousSibling) {
- for (var i = 0; i < this.selectedItems.length; i++) {
- item = this.selectedItems[i];
- item.parentNode.insertBefore(item, item.previousSibling);
- }
- } else if ((action == 'down') && this.getExtremeItem("last").nextSibling) {
- for (var i = this.selectedItems.length - 1; i > -1; i--) {
- item = this.selectedItems[i];
- item.parentNode.insertBefore(item.nextSibling, item);
- }
- } else if (action == 'first') {
- var incr = this.selectedItems[0].rowIndex;
- for (var i = 0; i < this.selectedItems.length; i++) {
- item = this.selectedItems[i];
- item.parentNode.insertBefore(item, rows[item.rowIndex - incr]);
- }
- } else if (action == 'last') {
- var length = this.shuttleItems.length;
- var incr = length - this.selectedItems[this.selectedItems.length - 1].rowIndex;
- for (var i = this.selectedItems.length - 1; i > -1; i--) {
- item = this.selectedItems[i];
- if (item.rowIndex + incr > length - 1) {
- item.parentNode.insertBefore(item, null);
- } else {
- item.parentNode.insertBefore(item, rows[item.rowIndex + incr]);
- }
- }
- }
-}
-
-Shuttle.prototype.getExtremeItem = function(position) {
- var extremeItem = this.selectedItems[0];
- var currentItem;
-
- for (var i = 1; i < this.selectedItems.length; i++) {
- currentItem = this.selectedItems[i];
- if (position == "first") {
- if (currentItem.rowIndex < extremeItem.rowIndex) {
- extremeItem = currentItem;
- }
- } else {
- if (currentItem.rowIndex > extremeItem.rowIndex) {
- extremeItem = currentItem;
- }
- }
- }
- return extremeItem;
-}
-
-Shuttle.prototype.getLastSelectedItem = function() {
-
-}
-
-Shuttle.prototype.onclickHandler = function(event) {
- //this.selectItem(event.srcElement);
- var activeElem = event.target || event.srcElement;
- if (activeElem == null) {
- return;
- }
-
- while (activeElem.tagName.toLowerCase() != "tr") {
- activeElem = activeElem.parentNode;
- }
-
- if (event.ctrlKey) {
- this.addSelectedItem(activeElem);
- //FIX
- } else if (event.shiftKey) {
- this.selectItemGroup(activeElem);
- } else {
- this.selectItem(activeElem);
- }
- activeElem.className = Shuttle.ACTIVE_ITEM_CLASS;
- this.activeItem = activeElem;
-}
-
-/**
- * Click handler
- */
-Shuttle.prototype.selectItem = function(activeItem) {
- var markedItem = this.getSelectItemById(activeItem.id);
- var markedShuttleItem = activeItem;
-
- if (markedItem != null) {
- if (markedItem._selected) {
- this.resetMarked();
- markedItem._selected = false;
- } else {
- this.resetMarked();
-
- markedItem._selected = true;
- //markedShuttleItem.className = Shuttle.ACTIVE_ITEM_CLASS;
- this.selectedItems[0] = markedShuttleItem;
- }
- }
-}
-
-/**
- * CTRL+Click handler
- */
-Shuttle.prototype.addSelectedItem = function(activeItem) {
- var markedItem = this.getSelectItemById(activeItem.id);
- var markedShuttleItem = activeItem;
-
- if (markedItem._selected) {
- //this.activeItem.className = Shuttle.NORMAL_ITEM_CLASS;
- this.selectedItems.remove(markedShuttleItem);
- markedItem._selected = false;
- } else {
- markedItem._selected = true;
- //markedShuttleItem.className = Shuttle.SELECTED_ITEM_CLASS;
- this.selectedItems.push(markedShuttleItem);
- }
- this.activeItem.className = Shuttle.SELECTED_ITEM_CLASS;
-
- if (this.activeItem && !this.getSelectItemById(this.activeItem.id)._selected) {
- this.activeItem.className = Shuttle.NORMAL_ITEM_CLASS;
- }
-}
-
-/**
- * Shift+Click handler
- */
-Shuttle.prototype.selectItemGroup = function(activeItem) {
- var lastItemIndex = this.activeItem.rowIndex;
- var startIndex;
- var endIndex;
- this.resetMarked();
- if (activeItem.rowIndex > lastItemIndex) {
- startIndex = lastItemIndex;
- endIndex = activeItem.rowIndex;
- } else {
- startIndex = activeItem.rowIndex;
- endIndex = lastItemIndex;
- }
- var rows = this.shuttleTbody.rows;
- for (var i = startIndex; i <= endIndex; i++) {
- rows[i].className = Shuttle.SELECTED_ITEM_CLASS;
- this.selectedItems.push(rows[i]);
- this.getSelectItemById(rows[i].id)._selected = true;
- }
-}
-
-Shuttle.prototype.resetMarked = function() {
- var rows = this.shuttleTbody.rows;
- for (var i = 0; i < rows.length; i++) {
- var shuttleItem = rows[i];
- shuttleItem.className = Shuttle.NORMAL_ITEM_CLASS;
- this.getSelectItemById(shuttleItem.id)._selected = false; //FIXME
- }
- this.selectedItems.length = 0;
-}
-
-Shuttle.prototype.getSelectItemById = function(selectItemId) {
- for (var i = 0; i < this.shuttleItems.length; i++) {
- var item = this.shuttleItems[i];
- if (selectItemId == item._id) {
- return item;
- }
- }
- return null
-}
-
-Shuttle.prototype.init = function() {
- this.shuttleTable = document.createElement("table");
- this.shuttleTbody = document.createElement("tbody");
- this.shuttle = this.shuttleTbody;
- this.addList(this.shuttleItems);
- this.shuttleTable.appendChild(this.shuttle)
- this.container.appendChild(this.shuttleTable);
-
-}
-
-Shuttle.prototype.rebuild = function() {
- this.shuttle = document.createElement("tbody");
-
- for (var i = 0; i < this.shuttleItems.length; i++) {
- this.shuttle.appendChild(this.shuttleItems[i]._node);
- }
- this.shuttleTbody.parentNode.removeChild(this.shuttleTbody);
- this.shuttleTable.appendChild(this.shuttle);
- this.shuttleTbody = this.shuttleTable.tBodies[0];
-}
-//--------------------------------
-Shuttle.prototype.createShuttleItem = function(selectItem, elemContainer) {
- var tr = document.createElement("tr");
- elemContainer.appendChild(tr);
- tr.id = selectItem._id
- //elemContainer.append('<tr id="').append(selectItem._id).append('" ');
- var className = null;
- if (selectItem._selected) {
- className = Shuttle.SELECTED_ITEM_CLASS;
- } else if (this.activeItem && (this.activeItem == selectItem)) {
- className = Shuttle.ACTIVE_ITEM_CLASS;
- } else {
- className = Shuttle.NORMAL_ITEM_CLASS;
- }
- //elemContainer.append('class="').append(className);
- tr.className = className;
- var obj = this;
- tr.onclick = function(e) {
- e = (window.event || e);
- obj.onclickHandler(e);
- }
- //elemContainer.append('" onclick="shuttle.onclickHandler(window.event||event);"');
- //elemContainer.append('>').append('<td>');
- var td = document.createElement("td");
- tr.appendChild(td);
- if (td.textContent == undefined) {
- td.innerText = selectItem._label;
- } else {
- td.textContent = selectItem._label;
- }
- selectItem._node = tr;
- //elemContainer.append(selectItem._label);
- //elemContainer.append('</td><td width="0">');
- //this.createValueKeeper(selectItem, elemContainer);
- //elemContainer.append('</td></tr>');
-}
-
-Shuttle.prototype.compare = function(obj1, obj2) {
- obj1 = obj1._label;
- obj2 = obj2._label;
- return ((obj1 == obj2) ? 0 : ((obj1 < obj2) ? -1 : 1));
-}
-
-Shuttle.prototype.compareByRowIndex = function(obj1, obj2) {
- obj1 = obj1.rowIndex;
- obj2 = obj2.rowIndex;
- return ((obj1 == obj2) ? 0 : ((obj1 < obj2) ? -1 : 1));
-}
-
-Shuttle.prototype.createValueKeeper = function(selectItem, elemContainer) {
- elemContainer.append('<input type="hidden" value="')
- .append(selectItem._value).append('"/>');
-}
Copied: trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx (from rev 3579, trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlSelectOrderShuttle.jspx)
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx (rev 0)
+++ trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlOrderingList.jspx 2007-10-29 03:11:27 UTC (rev 3583)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<f:root
+ xmlns:f="http://ajax4jsf.org/cdk/template"
+ xmlns:c=" http://java.sun.com/jsf/core"
+ xmlns:ui=" http://ajax4jsf.org/cdk/ui"
+ xmlns:u=" http://ajax4jsf.org/cdk/u"
+ xmlns:x=" http://ajax4jsf.org/cdk/x"
+ baseclass="org.richfaces.renderkit.OrderingListRendererBase"
+ class="org.richfaces.renderkit.html.OrderingListRenderer"
+ component="org.richfaces.component.UIOrderingList"
+ >
+ <h:styles>css/orderingList.xcss</h:styles>
+
+ <h:scripts>
+ scripts/StringBuilder.js,scripts/SelectItem.js,scripts/OrderingList.js
+ </h:scripts>
+
+ <f:clientid var="clientId"/>
+ <div id="#{clientId}">
+ <table id="#{clientId}table">
+ <tbody id="#{clientId}tbody">
+ <vcp:body>
+ <input type="text" value="dsfdsf" name="asdasdas"/>
+ <f:call name="renderChildren" />
+ </vcp:body>
+ </tbody>
+ </table>
+ </div>
+ <a href="#" onclick="shuttle.sort();">Header</a><br/>
+ <a href="#" onclick="shuttle.moveSelectedItems('up');">up</a><br/>
+ <a href="#" onclick="shuttle.moveSelectedItems('down');">down</a><br/>
+ <a href="#" onclick="shuttle.moveSelectedItems('first');">first</a><br/>
+ <a href="#" onclick="shuttle.moveSelectedItems('last');">last</a>
+ <script type="text/javascript">
+ #{this:initJSShuttleObject(context, component)}
+ document.body.onselectstart = function() {return false;};
+ document.body.className = "body";
+
+ </script>
+</f:root>
\ No newline at end of file
Deleted: trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlSelectOrderShuttle.jspx
===================================================================
--- trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlSelectOrderShuttle.jspx 2007-10-29 03:11:15 UTC (rev 3582)
+++ trunk/sandbox/ui/orderingList/src/main/templates/org/richfaces/htmlSelectOrderShuttle.jspx 2007-10-29 03:11:27 UTC (rev 3583)
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<f:root
- xmlns:f="http://ajax4jsf.org/cdk/template"
- xmlns:c=" http://java.sun.com/jsf/core"
- xmlns:ui=" http://ajax4jsf.org/cdk/ui"
- xmlns:u=" http://ajax4jsf.org/cdk/u"
- xmlns:x=" http://ajax4jsf.org/cdk/x"
- baseclass="org.richfaces.renderkit.html.SelectOrderShuttleRendererBase"
- class="org.richfaces.renderkit.html.SelectOrderShuttleRenderer"
- component="org.richfaces.component.UISelectOrderShuttle"
- >
- <h:styles>css/selectOrderShuttle.xcss</h:styles>
-
- <h:scripts>
- scripts/StringBuilder.js,scripts/SelectItem.js,scripts/SelectOrderShuttle.js
- </h:scripts>
-
- <f:clientid var="clientId"/>
- <div id="#{clientId}">
- <vcp:body>
- <input type="text" value="dsfdsf" name="asdasdas"/>
- <f:call name="renderChildren" />
- </vcp:body>
- </div>
- <a href="#" onclick="shuttle.sort();">Header</a><br/>
- <a href="#" onclick="shuttle.moveSelectedItems('up');">up</a><br/>
- <a href="#" onclick="shuttle.moveSelectedItems('down');">down</a><br/>
- <a href="#" onclick="shuttle.moveSelectedItems('first');">first</a><br/>
- <a href="#" onclick="shuttle.moveSelectedItems('last');">last</a>
- <script type="text/javascript">
- #{this:initJSShuttleObject(context, component)}
- document.body.onselectstart = function() {return false;};
- document.body.className = "body";
-
- </script>
-</f:root>
\ No newline at end of file
16 years, 6 months
JBoss Rich Faces SVN: r3582 - trunk/sandbox/ui/listShuttle.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-10-28 23:11:15 -0400 (Sun, 28 Oct 2007)
New Revision: 3582
Modified:
trunk/sandbox/ui/listShuttle/pom.xml
Log:
orderingList & listShuttle components updated:
- pom.xml
- sandbox added to group
- required dependencies added & excess removed
- listShuttle renamed to orderingList
- orderingListDemo: beans & demo page added
- orderinList: added rendering of table using AbstractRowsRenderer from dataTable
Modified: trunk/sandbox/ui/listShuttle/pom.xml
===================================================================
--- trunk/sandbox/ui/listShuttle/pom.xml 2007-10-29 00:09:18 UTC (rev 3581)
+++ trunk/sandbox/ui/listShuttle/pom.xml 2007-10-29 03:11:15 UTC (rev 3582)
@@ -5,10 +5,9 @@
<version>3.2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <groupId>org.richfaces</groupId>
+ <groupId>org.richfaces.sandbox.ui</groupId>
<artifactId>listShuttle</artifactId>
<name>listShuttle</name>
- <version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
@@ -34,17 +33,4 @@
</plugin>
</plugins>
</build>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.richfaces.framework</groupId>
- <artifactId>richfaces-impl</artifactId>
- <version>3.2.0-SNAPSHOT</version>
- </dependency>
- </dependencies>
</project>
\ No newline at end of file
16 years, 6 months
JBoss Rich Faces SVN: r3581 - trunk/ui/core/src/main/java/org/ajax4jsf/taglib/html/jsp.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-10-28 20:09:18 -0400 (Sun, 28 Oct 2007)
New Revision: 3581
Modified:
trunk/ui/core/src/main/java/org/ajax4jsf/taglib/html/jsp/AjaxSupportTag.java
Log:
AjaxSupportTag: event attribute switched to String as it is el-only
Modified: trunk/ui/core/src/main/java/org/ajax4jsf/taglib/html/jsp/AjaxSupportTag.java
===================================================================
--- trunk/ui/core/src/main/java/org/ajax4jsf/taglib/html/jsp/AjaxSupportTag.java 2007-10-28 23:56:26 UTC (rev 3580)
+++ trunk/ui/core/src/main/java/org/ajax4jsf/taglib/html/jsp/AjaxSupportTag.java 2007-10-29 00:09:18 UTC (rev 3581)
@@ -69,7 +69,7 @@
/**
* Generate script for given event ( onclick, onenter ... )
*/
- private ValueExpression event = null;
+ private String event = null;
/**
@@ -113,7 +113,7 @@
/**
* @param event The event to set.
*/
- public void setEvent(ValueExpression event)
+ public void setEvent(String event)
{
this.event = event;
}
16 years, 6 months
JBoss Rich Faces SVN: r3580 - trunk/framework/api/src/main/java/org/richfaces/model.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-10-28 19:56:26 -0400 (Sun, 28 Oct 2007)
New Revision: 3580
Modified:
trunk/framework/api/src/main/java/org/richfaces/model/SequenceDataModel.java
Log:
http://jira.jboss.com/jira/browse/RF-1242
Modified: trunk/framework/api/src/main/java/org/richfaces/model/SequenceDataModel.java
===================================================================
--- trunk/framework/api/src/main/java/org/richfaces/model/SequenceDataModel.java 2007-10-27 01:15:42 UTC (rev 3579)
+++ trunk/framework/api/src/main/java/org/richfaces/model/SequenceDataModel.java 2007-10-28 23:56:26 UTC (rev 3580)
@@ -5,7 +5,9 @@
import java.io.IOException;
import java.util.AbstractList;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -111,6 +113,13 @@
this.wrappedData = data;
if (data instanceof List) {
this.list = (List) data;
+ } else if (data instanceof Collection) {
+ this.list = new ArrayList((Collection) data);
+ //copying all collection content into new collection here should prevent us
+ //from possible issues caused by iteration tricks. e.g.: returning custom iterator
+ //caching current element and comparing indices inside get()
+ //
+ //possible concurrent collection modifications and multithreading will break the magic
} else if (data instanceof NodeList) {
this.list = new AbstractList() {
16 years, 6 months
JBoss Rich Faces SVN: r3579 - in trunk/ui/tabPanel/src/main: resources/org/richfaces/renderkit/html/scripts and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-10-26 21:15:42 -0400 (Fri, 26 Oct 2007)
New Revision: 3579
Modified:
trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java
trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/scripts/tabPanel.js
Log:
http://jira.jboss.com/jira/browse/RF-1256
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java 2007-10-27 00:54:21 UTC (rev 3578)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java 2007-10-27 01:15:42 UTC (rev 3579)
@@ -111,10 +111,10 @@
if (!disabled) {
if (clientSide) {
- writer.writeAttribute(HTML.onclick_ATTRIBUTE, "if (RichFaces.onTabChange('"+pane.getClientId(context)+"','"+clientId+"')) RichFaces.switchTab('" + pane.getClientId(context) + "','" + clientId + "','" + getUtils().formatValue(context, pane, tab.getName()) + "');", "switchScript");
+ writer.writeAttribute(HTML.onclick_ATTRIBUTE, "if (RichFaces.onTabChange(event, '"+pane.getClientId(context)+"','"+clientId+"')) RichFaces.switchTab('" + pane.getClientId(context) + "','" + clientId + "','" + getUtils().formatValue(context, pane, tab.getName()) + "');", "switchScript");
} else {
String activeCheck = "if (RichFaces.isTabActive('" + clientId + LABEL_SUFFIX + "')) return false;";
- String eventCheck = " if (!RichFaces.onTabChange('"+pane.getClientId(context)+"','"+clientId+"')) return false;";
+ String eventCheck = " if (!RichFaces.onTabChange(event, '"+pane.getClientId(context)+"','"+clientId+"')) return false;";
if (ajax) {
JSFunction function = AjaxRendererUtils.buildAjaxFunction(tab,
Modified: trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/scripts/tabPanel.js
===================================================================
--- trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/scripts/tabPanel.js 2007-10-27 00:54:21 UTC (rev 3578)
+++ trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/scripts/tabPanel.js 2007-10-27 01:15:42 UTC (rev 3579)
@@ -146,7 +146,7 @@
return (tab.className.indexOf('dr-tbpnl-tb-act') < 0);
}
-RichFaces.onTabChange = function(pane,tab) {
+RichFaces.onTabChange = function(event, pane,tab) {
var labelSuffix = "_lbl";
var tabs = RichFaces.panelTabs[pane];
var lastActive, newActive;
@@ -162,13 +162,13 @@
}
if (lastActive && newActive) {
if (lastActive.ontableave && lastActive.ontableave != "") {
- var func = new Function("leftTabName","enteredTabName",lastActive.ontableave);
- var result = func(lastActive.name,newActive.name);
+ var func = new Function("event", "leftTabName","enteredTabName",lastActive.ontableave);
+ var result = func(event, lastActive.name,newActive.name);
if (typeof(result) == 'boolean' && !result) return false;
}
if (newActive.ontabenter && newActive.ontabenter != "") {
- var func = new Function("leftTabName","enteredTabName",newActive.ontabenter);
- var result = func(lastActive.name,newActive.name);
+ var func = new Function("event", "leftTabName","enteredTabName",newActive.ontabenter);
+ var result = func(event, lastActive.name,newActive.name);
if (typeof(result) == 'boolean' && !result) return false;
}
}
16 years, 7 months
JBoss Rich Faces SVN: r3578 - trunk/ui/tree/src/main/java/org/richfaces/component/state.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-10-26 20:54:21 -0400 (Fri, 26 Oct 2007)
New Revision: 3578
Modified:
trunk/ui/tree/src/main/java/org/richfaces/component/state/TreeState.java
Log:
http://jira.jboss.com/jira/browse/RF-1239
Modified: trunk/ui/tree/src/main/java/org/richfaces/component/state/TreeState.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/component/state/TreeState.java 2007-10-26 18:50:55 UTC (rev 3577)
+++ trunk/ui/tree/src/main/java/org/richfaces/component/state/TreeState.java 2007-10-27 00:54:21 UTC (rev 3578)
@@ -22,6 +22,7 @@
package org.richfaces.component.state;
import java.io.IOException;
+import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
@@ -41,7 +42,13 @@
* @author Nick Belaevski - nbelaevski(a)exadel.com created 23.11.2006
*
*/
-public class TreeState implements DataComponentState, TreeStateCommandsListener, StateHolder {
+public class TreeState implements DataComponentState, TreeStateCommandsListener, StateHolder, Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 9083705369340888171L;
+
private final class Visitor implements DataVisitor {
private TreeRowKey key;
private UITree tree;
@@ -99,6 +106,10 @@
private Set queuedCollapsedNodes = new HashSet();
+ public TreeState() {
+ super();
+ }
+
public TreeState(boolean stopInCollapsed) {
super();
this.stopInCollapsed = stopInCollapsed;
16 years, 7 months