JBoss Rich Faces SVN: r2457 - in trunk: framework/impl/src/main/java/org/ajax4jsf/webapp and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2007-08-23 17:51:36 -0400 (Thu, 23 Aug 2007)
New Revision: 2457
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptor.java
trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/FilterServletResponseWrapper.java
trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/AjaxCommandRendererBase.java
Log:
Some fixes related to http://jira.jboss.com/jira/browse/RF-652
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptor.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptor.java 2007-08-23 18:53:34 UTC (rev 2456)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/component/UIDataAdaptor.java 2007-08-23 21:51:36 UTC (rev 2457)
@@ -52,6 +52,8 @@
import org.ajax4jsf.model.ExtendedDataModel;
import org.ajax4jsf.model.SerializableDataModel;
import org.ajax4jsf.renderkit.AjaxChildrenRenderer;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* Base class for iterable components, like dataTable, Tomahawk dataList,
@@ -70,6 +72,8 @@
public final static DataModel EMPTY_MODEL = new ListDataModel(
Collections.EMPTY_LIST);
+
+ private static final Log _log = LogFactory.getLog(UIDataAdaptor.class);
/**
* Base class for visit data model at phases decode, validation and update
@@ -361,10 +365,16 @@
Renderer renderer = getRenderer(context);
if (null != renderer && renderer instanceof AjaxChildrenRenderer) {
// If renderer support partial encoding - call them.
+ if(_log.isDebugEnabled()){
+ _log.debug("Component "+getClientId(context)+" has delegated Encode children components by AjaxChildrenRenderer for path "+path);
+ }
AjaxChildrenRenderer childrenRenderer = (AjaxChildrenRenderer) renderer;
childrenRenderer.encodeAjaxChildren(context, this, path, ids,
renderedAreas);
} else {
+ if(_log.isDebugEnabled()){
+ _log.debug("Component "+getClientId(context)+" do Encode children components for path "+path);
+ }
// Use simple ajax children encoding for iterate other keys.
final AjaxChildrenRenderer childrenRenderer = getChildrenRenderer();
final String childrenPath = path + getId()
@@ -380,6 +390,9 @@
};
Set ajaxKeys = getAjaxKeys();
if (null != ajaxKeys) {
+ if(_log.isDebugEnabled()){
+ _log.debug("Component "+getClientId(context)+" Encode children components for a keys "+ajaxKeys);
+ }
captureOrigValue();
Object savedKey = getRowKey();
setRowKey(context, null);
@@ -395,6 +408,9 @@
setRowKey(savedKey);
restoreOrigValue();
} else {
+ if(_log.isDebugEnabled()){
+ _log.debug("Component "+getClientId(context)+" children components for all rows");
+ }
iterate(context, ajaxVisitor, null);
}
}
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/FilterServletResponseWrapper.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/FilterServletResponseWrapper.java 2007-08-23 18:53:34 UTC (rev 2456)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/FilterServletResponseWrapper.java 2007-08-23 21:51:36 UTC (rev 2457)
@@ -226,12 +226,12 @@
throw new IllegalStateException(Messages.getMessage(Messages.NO_WRITER_POSSIBLE_ERROR));
}
if (printWriter == null) {
+ if(log.isDebugEnabled()) {
+ log.debug(Messages.getMessage(Messages.CREATE_WRITER_INFO));
+ }
printWriter = new PrintWriter(new ServletStringWriter());
+ useWriter = true;
}
- if(log.isDebugEnabled()) {
- log.debug(Messages.getMessage(Messages.CREATE_WRITER_INFO));
- }
- useWriter = true;
return printWriter;
}
Modified: trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/AjaxCommandRendererBase.java
===================================================================
--- trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/AjaxCommandRendererBase.java 2007-08-23 18:53:34 UTC (rev 2456)
+++ trunk/ui/core/src/main/java/org/ajax4jsf/renderkit/AjaxCommandRendererBase.java 2007-08-23 21:51:36 UTC (rev 2457)
@@ -32,82 +32,88 @@
import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.event.AjaxEvent;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
-
/**
* @author asmirnov(a)exadel.com (latest modification by $Author: alexsmirnov $)
* @version $Revision: 1.1.2.3 $ $Date: 2007/02/12 17:46:53 $
- *
+ *
*/
public abstract class AjaxCommandRendererBase extends AjaxComponentRendererBase {
+ private static final Log _log = LogFactory
+ .getLog(AjaxCommandRendererBase.class);
+
protected void doDecode(FacesContext facesContext, UIComponent uiComponent) {
-
- //super.decode must not be called, because value is handled here
- if ( isSubmitted(facesContext, uiComponent))
- {
- Map attributes = uiComponent.getAttributes();
- Object type = attributes.get("type");
- if (! "reset".equalsIgnoreCase((String)type) ) {
- ActionEvent event;
- event = new ActionEvent(uiComponent);
- uiComponent.queueEvent(event);
- }
- uiComponent.queueEvent( new AjaxEvent(uiComponent));
-// org.ajax4jsf.framework.ajax.AjaxRegionListener.addRegionsFromComponent(uiComponent, facesContext);
- }
+
+ // super.decode must not be called, because value is handled here
+ if (isSubmitted(facesContext, uiComponent)) {
+ ActionEvent event;
+ event = new ActionEvent(uiComponent);
+ uiComponent.queueEvent(event);
+
+ uiComponent.queueEvent(new AjaxEvent(uiComponent));
+ }
}
public String getOnClick(FacesContext context, UIComponent component) {
- StringBuffer onClick;
- if ( !getUtils().isBooleanAttribute(component,"disabled")) {
- onClick = AjaxRendererUtils.buildOnClick(component, context);
- if (!"reset".equals(component.getAttributes().get("type"))) {
- onClick.append(";return false;");
- }
- } else {
- onClick = new StringBuffer("return false;");
+ StringBuffer onClick;
+ if (!getUtils().isBooleanAttribute(component, "disabled")) {
+ onClick = AjaxRendererUtils.buildOnClick(component, context);
+ if (!"reset".equals(component.getAttributes().get("type"))) {
+ onClick.append(";return false;");
}
- return onClick.toString();
+ } else {
+ onClick = new StringBuffer("return false;");
}
+ return onClick.toString();
+ }
- public void encodeChildren(FacesContext context, UIComponent component) throws IOException {
- renderChildren(context, component);
+ public void encodeChildren(FacesContext context, UIComponent component)
+ throws IOException {
+ renderChildren(context, component);
}
public Object getValue(UIComponent uiComponent) {
- if (uiComponent instanceof ValueHolder) {
- return ((ValueHolder) uiComponent).getValue();
- }
- return uiComponent.getAttributes().get("value");
+ if (uiComponent instanceof ValueHolder) {
+ return ((ValueHolder) uiComponent).getValue();
+ }
+ return uiComponent.getAttributes().get("value");
}
public String getType(UIComponent uiComponent) {
- String type;
- if (uiComponent instanceof HtmlCommandButton) {
- type = ((HtmlCommandButton) uiComponent).getType();
- } else {
- type = (String) uiComponent.getAttributes().get("type");
- }
- if (type == null) {
- type = "button";
- }
- return type;
+ String type;
+ if (uiComponent instanceof HtmlCommandButton) {
+ type = ((HtmlCommandButton) uiComponent).getType();
+ } else {
+ type = (String) uiComponent.getAttributes().get("type");
+ }
+ if (type == null) {
+ type = "button";
+ }
+ return type;
}
-
- protected boolean isSubmitted(FacesContext facesContext, UIComponent uiComponent) {
- // Componet accept only ajax requests.
- if ( !AjaxContext.getCurrentInstance(facesContext).isAjaxRequest(facesContext)) {
+ protected boolean isSubmitted(FacesContext facesContext,
+ UIComponent uiComponent) {
+ // Componet accept only ajax requests.
+ if (!AjaxContext.getCurrentInstance(facesContext).isAjaxRequest(
+ facesContext)) {
return false;
}
- if(getUtils().isBooleanAttribute(uiComponent,"disabled")){
+ if (getUtils().isBooleanAttribute(uiComponent, "disabled")) {
return false;
}
- String clientId = uiComponent.getClientId(facesContext);
- Map paramMap = facesContext.getExternalContext().getRequestParameterMap();
- Object value = paramMap.get( clientId );
- return null != value;
+ String clientId = uiComponent.getClientId(facesContext);
+ Map paramMap = facesContext.getExternalContext()
+ .getRequestParameterMap();
+ Object value = paramMap.get(clientId);
+ boolean submitted = null != value;
+ if (submitted && _log.isDebugEnabled()) {
+ _log.debug("Decode submit of the Ajax component " + clientId);
+ }
+ return submitted;
}
}
18 years, 8 months
JBoss Rich Faces SVN: r2456 - in trunk/ui/dataTable/src/main/java/org/richfaces: renderkit and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2007-08-23 14:53:34 -0400 (Thu, 23 Aug 2007)
New Revision: 2456
Modified:
trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java
trunk/ui/dataTable/src/main/java/org/richfaces/component/UISubTable.java
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
Log:
Fix wrong method name ( renderedColumns instead of columns() )
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java 2007-08-23 18:20:46 UTC (rev 2455)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/component/UIDataTable.java 2007-08-23 18:53:34 UTC (rev 2456)
@@ -93,7 +93,7 @@
dataChildren.addIterator(new FilterIterator(getFacets().values()
.iterator(), isAjaxSupport));
- dataChildren.addIterator(renderedColumns());
+ dataChildren.addIterator(columns());
// Append all columns children.
@@ -126,7 +126,7 @@
fixedChildren.addIterator(new FilterIterator(getChildren().iterator(),
isNotColumn));
// Append all columns facets.
- for (Iterator iter = renderedColumns(); iter.hasNext();) {
+ for (Iterator iter = columns(); iter.hasNext();) {
UIComponent column = (UIComponent) iter.next();
if (column.isRendered()) {
fixedChildren.addIterator(column.getFacets().values()
@@ -141,7 +141,7 @@
return fixedChildren;
}
- public Iterator renderedColumns() {
+ public Iterator columns() {
return new FilterIterator(getChildren().iterator(), isColumn);
}
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/component/UISubTable.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/component/UISubTable.java 2007-08-23 18:20:46 UTC (rev 2455)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/component/UISubTable.java 2007-08-23 18:53:34 UTC (rev 2456)
@@ -50,9 +50,11 @@
throw new IllegalStateException("Property 'breakBefore' for subtable is read-only");
}
- public Iterator columns() {
- return new FilterIterator(getChildren().iterator(),isColumn);
- }
-
+ /* (non-Javadoc)
+ * @see org.richfaces.component.UIDataTable#columns()
+ */
+ public Iterator columns() {
+ return super.columns();
+ }
}
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2007-08-23 18:20:46 UTC (rev 2455)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2007-08-23 18:53:34 UTC (rev 2456)
@@ -185,7 +185,7 @@
throws IOException {
UIDataTable table = (UIDataTable) holder.getTable();
ResponseWriter writer = context.getResponseWriter();
- Iterator iter = table.renderedColumns();
+ Iterator iter = table.columns();
boolean first = true;
int currentColumn = 0;
UIComponent column = null;
@@ -287,7 +287,7 @@
* Changed by Alexej Kushunin
*/
protected Iterator columnFacets(UIDataTable table,final String name){
- return new FilterIterator(table.renderedColumns(), new Predicate() {
+ return new FilterIterator(table.columns(), new Predicate() {
public boolean evaluate(Object input) {
UIComponent component = (UIComponent) input;
@@ -316,7 +316,7 @@
count = span.intValue();
} else {
// calculate max html columns count for all columns/rows children.
- Iterator col = table.renderedColumns();
+ Iterator col = table.columns();
count = calculateRowColumns(col);
}
return count;
18 years, 8 months
JBoss Rich Faces SVN: r2455 - in trunk: framework and 4 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2007-08-23 14:20:46 -0400 (Thu, 23 Aug 2007)
New Revision: 2455
Modified:
trunk/framework/impl/pom.xml
trunk/framework/pom.xml
trunk/markRelease.sh
trunk/ui/dataTable/src/main/java/org/richfaces/component/UIColumnGroup.java
trunk/ui/dataTable/src/main/java/org/richfaces/component/UISubTable.java
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/html/ColgroupRenderer.java
Log:
Fix wrong method name ( renderedColumns instead of columns() )
Modified: trunk/framework/impl/pom.xml
===================================================================
--- trunk/framework/impl/pom.xml 2007-08-23 17:50:34 UTC (rev 2454)
+++ trunk/framework/impl/pom.xml 2007-08-23 18:20:46 UTC (rev 2455)
@@ -30,17 +30,6 @@
</resources>
<plugins>
<plugin>
- <artifactId>maven-source-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-source</id>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>javacc-maven-plugin</artifactId>
<version>2.1</version>
Modified: trunk/framework/pom.xml
===================================================================
--- trunk/framework/pom.xml 2007-08-23 17:50:34 UTC (rev 2454)
+++ trunk/framework/pom.xml 2007-08-23 18:20:46 UTC (rev 2455)
@@ -14,7 +14,6 @@
<name>Java Server Faces AJAX framework</name>
<dependencies />
<build>
- <pluginManagement>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
@@ -62,7 +61,6 @@
</configuration>
</plugin>
</plugins>
- </pluginManagement>
</build>
<modules>
<!--
Modified: trunk/markRelease.sh
===================================================================
--- trunk/markRelease.sh 2007-08-23 17:50:34 UTC (rev 2454)
+++ trunk/markRelease.sh 2007-08-23 18:20:46 UTC (rev 2455)
@@ -1,4 +1,6 @@
#!/bin/sh
+mvn scm:checkout -DconnectionType=developerConnection
+cd target/checkout
mvn release:branch -DdryRun=true -DautoVersionSubmodules=true \
-DbranchName=$1 -DupdateBranchVersions=true \
-DupdateVersionsToSnapshot=false \
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/component/UIColumnGroup.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/component/UIColumnGroup.java 2007-08-23 17:50:34 UTC (rev 2454)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/component/UIColumnGroup.java 2007-08-23 18:20:46 UTC (rev 2455)
@@ -37,7 +37,7 @@
private static final String COMPONENT_FAMILY = "org.richfaces.Colgroup";
- public Iterator renderedColumns(){
+ public Iterator columns(){
return new FilterIterator(getChildren().iterator(),UIDataTable.isColumn);
}
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/component/UISubTable.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/component/UISubTable.java 2007-08-23 17:50:34 UTC (rev 2454)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/component/UISubTable.java 2007-08-23 18:20:46 UTC (rev 2455)
@@ -21,7 +21,11 @@
package org.richfaces.component;
+import java.util.Iterator;
+import org.apache.commons.collections.iterators.FilterIterator;
+
+
/**
* JSF component class
*
@@ -46,5 +50,9 @@
throw new IllegalStateException("Property 'breakBefore' for subtable is read-only");
}
+ public Iterator columns() {
+ return new FilterIterator(getChildren().iterator(),isColumn);
+ }
+
}
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2007-08-23 17:50:34 UTC (rev 2454)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/AbstractTableRenderer.java 2007-08-23 18:20:46 UTC (rev 2455)
@@ -343,7 +343,7 @@
}
// Calculate number of columns in row.
currentLength = calculateRowColumns(((Row) column)
- .renderedColumns());
+ .columns());
// Store max calculated value
if (currentLength > count) {
count = currentLength;
Modified: trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/html/ColgroupRenderer.java
===================================================================
--- trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/html/ColgroupRenderer.java 2007-08-23 17:50:34 UTC (rev 2454)
+++ trunk/ui/dataTable/src/main/java/org/richfaces/renderkit/html/ColgroupRenderer.java 2007-08-23 18:20:46 UTC (rev 2455)
@@ -71,7 +71,7 @@
if (null != columnClasses) {
classes = columnClasses.split(",");
}
- Iterator iter = colgroup.renderedColumns();
+ Iterator iter = colgroup.columns();
boolean first = true;
int currentColumn = 0;
int currentRow = 0;
18 years, 8 months
JBoss Rich Faces SVN: r2454 - in trunk: framework/api/src/main/java/org/richfaces/model and 9 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-08-23 13:50:34 -0400 (Thu, 23 Aug 2007)
New Revision: 2454
Added:
trunk/ui/tree/src/test/java/org/richfaces/renderkit/
trunk/ui/tree/src/test/java/org/richfaces/renderkit/TreeRowKeyComparatorTest.java
Modified:
trunk/framework/api/src/main/java/org/richfaces/event/AjaxSelectedEvent.java
trunk/framework/api/src/main/java/org/richfaces/event/NodeSelectedEvent.java
trunk/framework/api/src/main/java/org/richfaces/model/ListRowKey.java
trunk/samples/tree-demo/src/main/java/org/richfaces/Bean.java
trunk/samples/tree-demo/src/main/webapp/pages/index.jsp
trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java
trunk/ui/tree/src/main/java/org/richfaces/component/UITreeNode.java
trunk/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java
trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/css/tree.xcss
trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree.js
trunk/ui/tree/src/test/java/org/richfaces/component/ListRowKeyTest.java
Log:
http://jira.jboss.com/jira/browse/RF-642
Modified: trunk/framework/api/src/main/java/org/richfaces/event/AjaxSelectedEvent.java
===================================================================
--- trunk/framework/api/src/main/java/org/richfaces/event/AjaxSelectedEvent.java 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/framework/api/src/main/java/org/richfaces/event/AjaxSelectedEvent.java 2007-08-23 17:50:34 UTC (rev 2454)
@@ -38,8 +38,4 @@
super(component);
}
- public AjaxSelectedEvent(UIComponent component, boolean duplicate) {
- super(component, duplicate);
- }
-
}
Modified: trunk/framework/api/src/main/java/org/richfaces/event/NodeSelectedEvent.java
===================================================================
--- trunk/framework/api/src/main/java/org/richfaces/event/NodeSelectedEvent.java 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/framework/api/src/main/java/org/richfaces/event/NodeSelectedEvent.java 2007-08-23 17:50:34 UTC (rev 2454)
@@ -32,18 +32,10 @@
*/
public class NodeSelectedEvent extends FacesEvent {
- private boolean duplicate = false;
-
public NodeSelectedEvent(UIComponent component) {
super(component);
}
- public NodeSelectedEvent(UIComponent component, boolean duplicate) {
- super(component);
-
- this.duplicate = duplicate;
- }
-
/**
*
*/
@@ -64,8 +56,4 @@
public void processListener(FacesListener listener) {
((NodeSelectedListener) listener).processSelection(this);
}
-
- public boolean isDuplicate() {
- return duplicate;
- }
}
Modified: trunk/framework/api/src/main/java/org/richfaces/model/ListRowKey.java
===================================================================
--- trunk/framework/api/src/main/java/org/richfaces/model/ListRowKey.java 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/framework/api/src/main/java/org/richfaces/model/ListRowKey.java 2007-08-23 17:50:34 UTC (rev 2454)
@@ -187,12 +187,7 @@
if (rowKey instanceof ListRowKey) {
ListRowKey listRowKey = (ListRowKey) rowKey;
- int commonLength = getCommonPathLength(listRowKey);
- if (commonLength != 0) {
- return commonLength == depth();
- } else {
- return rowKey.depth() == 0;
- }
+ return depth() == getCommonPathLength(listRowKey);
} else {
return super.isSubKey(rowKey);
}
Modified: trunk/samples/tree-demo/src/main/java/org/richfaces/Bean.java
===================================================================
--- trunk/samples/tree-demo/src/main/java/org/richfaces/Bean.java 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/samples/tree-demo/src/main/java/org/richfaces/Bean.java 2007-08-23 17:50:34 UTC (rev 2454)
@@ -34,17 +34,17 @@
import javax.faces.context.FacesContext;
import javax.faces.event.FacesEvent;
+import org.ajax4jsf.context.AjaxContext;
+import org.richfaces.component.UITree;
+import org.richfaces.component.UITreeNode;
+import org.richfaces.component.xml.XmlTreeDataBuilder;
import org.richfaces.event.DropEvent;
-import org.ajax4jsf.context.AjaxContext;
+import org.richfaces.event.NodeExpandedEvent;
+import org.richfaces.event.NodeSelectedEvent;
import org.richfaces.model.ListRowKey;
import org.richfaces.model.TreeNode;
import org.richfaces.model.TreeNodeImpl;
import org.richfaces.model.TreeRowKey;
-import org.richfaces.component.UITree;
-import org.richfaces.component.UITreeNode;
-import org.richfaces.event.NodeExpandedEvent;
-import org.richfaces.event.NodeSelectedEvent;
-import org.richfaces.component.xml.XmlTreeDataBuilder;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -186,6 +186,16 @@
public void onSelect(NodeSelectedEvent event) {
System.out.println("Node selected: " + getTree(event).getRowKey());
+ UITree tree = getTree(event);
+ Set keys = tree.getAjaxKeys();
+ if (keys == null) {
+ keys = new HashSet();
+ tree.setAjaxKeys(keys);
+ }
+
+ keys.add(tree.getRowKey());
+ keys.add(new ListRowKey());
+
if (getTree(event).getTreeNode()!=null) {
selectedNode = getTree(event).getTreeNode();
initData();
Modified: trunk/samples/tree-demo/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/samples/tree-demo/src/main/webapp/pages/index.jsp 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/samples/tree-demo/src/main/webapp/pages/index.jsp 2007-08-23 17:50:34 UTC (rev 2454)
@@ -1,4 +1,6 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
<%@ 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/a4j" prefix="a4j" %>
@@ -118,7 +120,7 @@
onselected="window.status='selectedNode: '+event.selectedNode;"
onexpand="window.status='expandedNode: '+event.expandedNode"
oncollapse="window.status='collapsedNode: '+event.collapsedNode"
- ajaxSubmitSelection="true" reRender="outputText, selectOneListbox"
+ ajaxSubmitSelection="true"
preserveModel="none"
dragIndicator="treeIndicator"
immediate="false"
Modified: trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java 2007-08-23 17:50:34 UTC (rev 2454)
@@ -321,8 +321,8 @@
AbstractTreeDataModel dataModel = (AbstractTreeDataModel) getExtendedDataModel();
dataModel.walk(faces, visitor, range, rowKey,
argument,
- faces.getExternalContext().getRequestParameterMap().get(
- getBaseClientId(faces) + LAST_ELEMENT_FLAG) != null);
+ false/*faces.getExternalContext().getRequestParameterMap().get(
+ getBaseClientId(faces) + LAST_ELEMENT_FLAG) != null*/);
} finally {
try {
setRowKey(faces, savedRowKey);
@@ -492,9 +492,7 @@
if (event instanceof NodeSelectedEvent) {
NodeSelectedEvent selectedEvent = (NodeSelectedEvent) event;
- if (!selectedEvent.isDuplicate()) {
- setSelected();
- }
+ setSelected();
}
// fire node events
Modified: trunk/ui/tree/src/main/java/org/richfaces/component/UITreeNode.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/component/UITreeNode.java 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/ui/tree/src/main/java/org/richfaces/component/UITreeNode.java 2007-08-23 17:50:34 UTC (rev 2454)
@@ -20,7 +20,6 @@
import org.richfaces.event.DropEvent;
import org.richfaces.event.DropListener;
import org.richfaces.event.NodeExpandedListener;
-import org.richfaces.event.NodeSelectedEvent;
import org.richfaces.event.NodeSelectedListener;
import org.richfaces.event.TreeListenerEventsProducer;
@@ -108,13 +107,6 @@
FacesContext context = getFacesContext();
UITree tree = getUITree();
- if (event instanceof NodeSelectedEvent) {
- NodeSelectedEvent selectedEvent = (NodeSelectedEvent) event;
- if (!selectedEvent.isDuplicate()) {
- tree.setSelected();
- }
- }
-
TreeEvents.invokeListenerBindings(this, event, context);
//TODO quick fix for UITree to invoke listeners
Modified: trunk/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/ui/tree/src/main/java/org/richfaces/renderkit/NodeRendererBase.java 2007-08-23 17:50:34 UTC (rev 2454)
@@ -289,11 +289,11 @@
if (tree.getAttributes().get(
UITree.SELECTED_NODE_PARAMETER_NAME) == null) {
+ new NodeSelectedEvent(tree).queue();
new NodeSelectedEvent(node).queue();
- new NodeSelectedEvent(tree, true).queue();
} else {
+ new AjaxSelectedEvent(tree).queue();
new AjaxSelectedEvent(node).queue();
- new AjaxSelectedEvent(tree, true).queue();
}
}
Modified: trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/ui/tree/src/main/java/org/richfaces/renderkit/TreeRendererBase.java 2007-08-23 17:50:34 UTC (rev 2454)
@@ -23,6 +23,8 @@
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -52,6 +54,35 @@
public abstract class TreeRendererBase extends CompositeRenderer {
+ protected final static Comparator treeRowKeyComparator = new Comparator() {
+
+ public int compare(Object key1, Object key2) {
+ TreeRowKey treeRowKey1 = (TreeRowKey) key1;
+ TreeRowKey treeRowKey2 = (TreeRowKey) key2;
+
+ Iterator iterator1 = treeRowKey1.iterator();
+ Iterator iterator2 = treeRowKey2.iterator();
+
+ while (iterator1.hasNext() && iterator2.hasNext()) {
+ String id1 = iterator1.next().toString();
+ String id2 = iterator2.next().toString();
+
+ int cr = id1.compareTo(id2);
+ if (cr != 0) {
+ return cr;
+ }
+ }
+
+ if (iterator1.hasNext()) {
+ return 1;
+ } else if (iterator2.hasNext()) {
+ return -1;
+ } else {
+ return 0;
+ }
+ }
+ };
+
private final class RendererDataModelEventNavigator extends
TreeDataModelEventNavigator {
private final FacesContext context;
@@ -62,7 +93,6 @@
private String clientId;
private boolean expanded;
private boolean showLines;
- private boolean isLastElement;
private RendererDataModelEventNavigator(UITree tree,
TreeRowKey floatingKey, FacesContext context, Flag droppedDownToLevelFlag) {
@@ -129,10 +159,7 @@
public void beforeUp(int levels) throws IOException {
}
- int stat = 0;
-
public void openDiv(Context context) throws IOException {
- stat++;
writer.startElement("div", tree);
if (context == null) {
@@ -159,12 +186,7 @@
public void closeDiv() throws IOException {
writer.endElement("div");
- stat--;
}
-
- public int getStat() {
- return stat;
- }
}
private class DataVisitorWithLastElement implements DataVisitor,
@@ -172,8 +194,6 @@
private boolean isLastElement = false;
- private final ResponseWriter writer;
-
private final Flag flag;
private final UITree tree;
@@ -182,10 +202,8 @@
private TreeStateAdvisor methodBindingAdvisor = null;
- private DataVisitorWithLastElement(ResponseWriter writer,
- Flag flag, UITree tree,
+ private DataVisitorWithLastElement(Flag flag, UITree tree,
RendererDataModelEventNavigator navigator) {
- this.writer = writer;
this.flag = flag;
this.tree = tree;
this.navigator = navigator;
@@ -208,8 +226,20 @@
try {
nodeFacet.getAttributes().put("isLastElement", new Boolean(isLastElement));
- renderChild(context, nodeFacet);
+ ResponseWriter writer = context.getResponseWriter();
+ if (isLastElement) {
+ writer.startElement("p", tree);
+ writer.writeAttribute("class", "last-node", null);
+ writer.endElement("p");
+ writer.startElement("div", tree);
+ renderChild(context, nodeFacet);
+ writer.endElement("div");
+ } else {
+ renderChild(context, nodeFacet);
+ }
+
+
c = new Context();
c.setClientId(nodeFacet.getClientId(context) + NamingContainer.SEPARATOR_CHAR);
c.setLast(this.isLastElement);
@@ -331,12 +361,38 @@
try {
Set ajaxKeys = tree.getAjaxKeys();
if (ajaxKeys != null) {
- Iterator ajaxKeysItr = ajaxKeys.iterator();
+ List list = new ArrayList(ajaxKeys.size());
+ list.addAll(ajaxKeys);
+ Collections.sort(list, treeRowKeyComparator);
+ Iterator ajaxKeysItr = list.iterator();
+ TreeRowKey lastKey = null;
+
while (ajaxKeysItr.hasNext()) {
TreeRowKey key = (TreeRowKey) ajaxKeysItr.next();
+
+ if (lastKey == null) {
+ lastKey = key;
+ } else {
+ if (!lastKey.isSubKey(key)) {
+ lastKey = key;
+ } else {
+ //skip nodes that's parent nodes have been rendered
+ continue;
+ }
+ }
+
+ if (key != null && key.depth() == 0) {
+ key = null;
+ }
+
tree.setRowKey(context, key);
- String id = tree.getNodeFacet().getClientId(context);
+ String id;
+ if (key == null) {
+ id = tree.getClientId(context);
+ } else {
+ id = tree.getNodeFacet().getClientId(context);
+ }
String treeChildrenId = id + NamingContainer.SEPARATOR_CHAR + "childs";
if (ids.isEmpty() || ids.contains(id) || ids.contains(tree.getClientId(context))/* handle tree updates requests */) {
writeContent(context, tree, key);
@@ -349,7 +405,7 @@
}
}
- ajaxKeys.clear();
+ //ajaxKeys.clear();
}
} catch (Exception e) {
throw new FacesException(e);
@@ -525,8 +581,7 @@
};
- input.walk(context, new DataVisitorWithLastElement(writer,
- droppedDownToLevelFlag, input,
+ input.walk(context, new DataVisitorWithLastElement(droppedDownToLevelFlag, input,
levelNavigator), treeRange, key, null);
/*if (key != null) {
@@ -534,8 +589,6 @@
}*/
levelNavigator.followRowKey(context, null);
-
- System.out.println("TreeRendererBase.writeContent() " + levelNavigator.getStat());
} finally {
input.setRowKey(context, null);
input.restoreOrigValue();
Modified: trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/css/tree.xcss
===================================================================
--- trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/css/tree.xcss 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/css/tree.xcss 2007-08-23 17:50:34 UTC (rev 2454)
@@ -80,6 +80,10 @@
cursor: pointer;
}
+.last-node {
+ display: none;
+}
+
]]>
</f:verbatim>
@@ -112,11 +116,14 @@
<f:resource f:key="org.richfaces.renderkit.html.images.TreeLineNodeImage"/>
</u:style>
</u:selector>
-<u:selector name=".dr-tree-h-ic-line-last">
+<u:selector name="p.last-node+* .rich-tree-node-handleicon">
<u:style name="background-image">
<f:resource f:key="org.richfaces.renderkit.html.images.TreeLineLastImage"/>
</u:style>
</u:selector>
+<u:selector name="p.last-node+*+div.dr-tree-h-ic-line">
+ <u:style name="background-image" value="none" />
+</u:selector>
<u:selector name=".dr-tree-h-ic-line-exp">
<u:style name="background-image">
<f:resource f:key="org.richfaces.renderkit.html.images.TreeLineExpandedImage"/>
Modified: trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree.js
===================================================================
--- trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree.js 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/ui/tree/src/main/resources/org/richfaces/renderkit/html/scripts/tree.js 2007-08-23 17:50:34 UTC (rev 2454)
@@ -136,7 +136,17 @@
if (nodeIds) {
for (var i = 0; i < nodeIds.length; i++ ) {
var nodeId = nodeIds[i];
- this._getNodeElements(this, nodeId, nodeId.substring(0, nodeId.lastIndexOf(':')));
+ if (nodeId != this.id) {
+ this._getNodeElements(this, nodeId, nodeId.substring(0, nodeId.lastIndexOf(':')));
+ } else {
+ for (var i = 0; i < this.childs.length; i++) {
+ var child = this.childs[i];
+ child.destroy();
+ }
+
+ this.childs = [];
+ this.getElements();
+ }
}
//input holding selection has been refreshed
Modified: trunk/ui/tree/src/test/java/org/richfaces/component/ListRowKeyTest.java
===================================================================
--- trunk/ui/tree/src/test/java/org/richfaces/component/ListRowKeyTest.java 2007-08-23 17:45:15 UTC (rev 2453)
+++ trunk/ui/tree/src/test/java/org/richfaces/component/ListRowKeyTest.java 2007-08-23 17:50:34 UTC (rev 2454)
@@ -241,10 +241,10 @@
ListRowKey listRowKey1 = new ListRowKey(keyBase);
- assertFalse(new ListRowKey().isSubKey(listRowKey1));
- assertFalse(new ListRowKey().isSubKey(listRowKey));
- assertTrue(listRowKey.isSubKey(new ListRowKey()));
- assertTrue(listRowKey1.isSubKey(new ListRowKey()));
+ assertTrue(new ListRowKey().isSubKey(listRowKey1));
+ assertTrue(new ListRowKey().isSubKey(listRowKey));
+ assertFalse(listRowKey.isSubKey(new ListRowKey()));
+ assertFalse(listRowKey1.isSubKey(new ListRowKey()));
assertTrue(listRowKey.isSubKey(listRowKey1));
assertFalse(listRowKey1.isSubKey(listRowKey));
Added: trunk/ui/tree/src/test/java/org/richfaces/renderkit/TreeRowKeyComparatorTest.java
===================================================================
--- trunk/ui/tree/src/test/java/org/richfaces/renderkit/TreeRowKeyComparatorTest.java (rev 0)
+++ trunk/ui/tree/src/test/java/org/richfaces/renderkit/TreeRowKeyComparatorTest.java 2007-08-23 17:50:34 UTC (rev 2454)
@@ -0,0 +1,95 @@
+/**
+ * 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.richfaces.renderkit;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+
+import org.richfaces.model.ListRowKey;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ * <br /><br />
+ *
+ * Created 22.08.2007
+ * @author Nick Belaevski
+ * @since 3.1
+ */
+
+public class TreeRowKeyComparatorTest extends TestCase {
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testComparator() throws Exception {
+ Comparator comparator = TreeRendererBase.treeRowKeyComparator;
+
+ ListRowKey emptyKey = new ListRowKey();
+ ListRowKey key = new ListRowKey(new Integer(23));
+ ListRowKey eqkey = new ListRowKey(new Integer(23));
+ ListRowKey supKey = new ListRowKey(new ListRowKey(new Integer(23)), new Integer(34));
+
+ ListRowKey predLongKey = new ListRowKey(new ListRowKey(new ListRowKey(new Integer(22)), new Integer(0)), new Integer(8));
+ ListRowKey predKey = new ListRowKey(new Integer(22));
+ ListRowKey predSupKey = new ListRowKey(new ListRowKey(new Integer(22)), new Integer(34));
+ ListRowKey succKey = new ListRowKey(new ListRowKey(new Integer(25)), new Integer(34));
+ ListRowKey succSupKey = new ListRowKey(new ListRowKey(new ListRowKey(new Integer(25)), new Integer(34)), new Integer(2));
+
+ ArrayList list = new ArrayList();
+ list.add(eqkey);
+ list.add(succSupKey);
+ list.add(succKey);
+ list.add(predSupKey);
+ list.add(predKey);
+ list.add(supKey);
+ list.add(key);
+ list.add(emptyKey);
+ list.add(predLongKey);
+
+ Collections.sort(list, comparator);
+
+ assertEquals(emptyKey, list.get(0));
+ assertEquals(predKey, list.get(1));
+ assertEquals(predLongKey, list.get(2));
+ assertEquals(predSupKey, list.get(3));
+ assertEquals(eqkey, list.get(4));
+ assertEquals(key, list.get(5));
+ assertEquals(supKey, list.get(6));
+ assertEquals(succKey, list.get(7));
+ assertEquals(succSupKey, list.get(8));
+
+ }
+}
18 years, 8 months
JBoss Rich Faces SVN: r2453 - trunk/framework/impl/src/main/javascript/ajaxjsf.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-08-23 13:45:15 -0400 (Thu, 23 Aug 2007)
New Revision: 2453
Modified:
trunk/framework/impl/src/main/javascript/ajaxjsf/smartposition.js
Log:
http://jira.jboss.com/jira/browse/RF-670
Modified: trunk/framework/impl/src/main/javascript/ajaxjsf/smartposition.js
===================================================================
--- trunk/framework/impl/src/main/javascript/ajaxjsf/smartposition.js 2007-08-23 17:42:45 UTC (rev 2452)
+++ trunk/framework/impl/src/main/javascript/ajaxjsf/smartposition.js 2007-08-23 17:45:15 UTC (rev 2453)
@@ -1,4 +1,4 @@
-if (!Richfaces) {var Richfaces = {};}
+if (!window.Richfaces) { window.Richfaces = {};}
if (!Richfaces.SmartPosition )
Richfaces.SmartPosition = {
options: $H({"positionX": ["right","left","center"], "positionY": ["bottom","top"], positionFloat: true}),
18 years, 8 months
JBoss Rich Faces SVN: r2452 - trunk/framework/impl/src/main/javascript/ajaxjsf.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-08-23 13:42:45 -0400 (Thu, 23 Aug 2007)
New Revision: 2452
Modified:
trunk/framework/impl/src/main/javascript/ajaxjsf/imagecache.js
Log:
http://jira.jboss.com/jira/browse/RF-670
Modified: trunk/framework/impl/src/main/javascript/ajaxjsf/imagecache.js
===================================================================
--- trunk/framework/impl/src/main/javascript/ajaxjsf/imagecache.js 2007-08-23 17:42:12 UTC (rev 2451)
+++ trunk/framework/impl/src/main/javascript/ajaxjsf/imagecache.js 2007-08-23 17:42:45 UTC (rev 2452)
@@ -1,4 +1,4 @@
-if (!window.Richfaces) window.RichFaces = {};
+if (!window.Richfaces) window.Richfaces = {};
Richfaces.setImages =
function (element, images) {
18 years, 8 months
JBoss Rich Faces SVN: r2451 - trunk/framework/impl/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-08-23 13:42:12 -0400 (Thu, 23 Aug 2007)
New Revision: 2451
Modified:
trunk/framework/impl/src/main/resources/org/richfaces/renderkit/html/scripts/browser_info.js
Log:
http://jira.jboss.com/jira/browse/RF-670
Modified: trunk/framework/impl/src/main/resources/org/richfaces/renderkit/html/scripts/browser_info.js
===================================================================
--- trunk/framework/impl/src/main/resources/org/richfaces/renderkit/html/scripts/browser_info.js 2007-08-23 17:39:39 UTC (rev 2450)
+++ trunk/framework/impl/src/main/resources/org/richfaces/renderkit/html/scripts/browser_info.js 2007-08-23 17:42:12 UTC (rev 2451)
@@ -1,5 +1,5 @@
-if (!RichFaces) {
- var RichFaces = {};
+if (!window.RichFaces) {
+ window.RichFaces = {};
}
RichFaces.navigatorType = function () {
18 years, 8 months
JBoss Rich Faces SVN: r2450 - in trunk/ui: dropdown-menu/src/main/resources/org/richfaces/renderkit/html/scripts and 4 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-08-23 13:39:39 -0400 (Thu, 23 Aug 2007)
New Revision: 2450
Modified:
trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js
trunk/ui/dropdown-menu/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js
trunk/ui/inputnumber-slider/src/main/resources/org/richfaces/renderkit/html/script/SliderScript.js
trunk/ui/inputnumber-spinner/src/main/resources/org/richfaces/renderkit/html/script/SpinnerScript.js
trunk/ui/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js
trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/scriptaculo.js
trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js
Log:
http://jira.jboss.com/jira/browse/RF-670 fixed
Modified: trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js
===================================================================
--- trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js 2007-08-23 17:12:38 UTC (rev 2449)
+++ trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js 2007-08-23 17:39:39 UTC (rev 2450)
@@ -5,7 +5,7 @@
if(typeof Effect == 'undefined')
throw("calendar.js requires including script.aculo.us' effects.js library");
-if (!Richfaces) Richfaces={};
+if (!window.Richfaces) window.Richfaces={};
Richfaces.Calendar={};
Richfaces.Calendar.setElementPosition = function(element, baseElement, jointPoint, direction, offset)
{
Modified: trunk/ui/dropdown-menu/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js
===================================================================
--- trunk/ui/dropdown-menu/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js 2007-08-23 17:12:38 UTC (rev 2449)
+++ trunk/ui/dropdown-menu/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js 2007-08-23 17:39:39 UTC (rev 2450)
@@ -5,7 +5,7 @@
var LOG = {a4j_debug:function(){}};
}
-if(!RichFaces) var RichFaces = {};
+if(!window.RichFaces) window.RichFaces = {};
if(!RichFaces.Menu) RichFaces.Menu = {};
/**
Modified: trunk/ui/inputnumber-slider/src/main/resources/org/richfaces/renderkit/html/script/SliderScript.js
===================================================================
--- trunk/ui/inputnumber-slider/src/main/resources/org/richfaces/renderkit/html/script/SliderScript.js 2007-08-23 17:12:38 UTC (rev 2449)
+++ trunk/ui/inputnumber-slider/src/main/resources/org/richfaces/renderkit/html/script/SliderScript.js 2007-08-23 17:39:39 UTC (rev 2450)
@@ -1,4 +1,4 @@
-if(!Richfaces) var Richfaces = {};
+if(!window.Richfaces) window.Richfaces = {};
Richfaces.Slider = Class.create();
Richfaces.Slider.prototype = {
initialize: function(handle, track, tip, table, handleSelectedClass, options) {
Modified: trunk/ui/inputnumber-spinner/src/main/resources/org/richfaces/renderkit/html/script/SpinnerScript.js
===================================================================
--- trunk/ui/inputnumber-spinner/src/main/resources/org/richfaces/renderkit/html/script/SpinnerScript.js 2007-08-23 17:12:38 UTC (rev 2449)
+++ trunk/ui/inputnumber-spinner/src/main/resources/org/richfaces/renderkit/html/script/SpinnerScript.js 2007-08-23 17:39:39 UTC (rev 2450)
@@ -1,4 +1,4 @@
-if (!Richfaces) var Richfaces = {};
+if (!window.Richfaces) window.Richfaces = {};
Richfaces.Spinner = Class.create();
Modified: trunk/ui/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js
===================================================================
--- trunk/ui/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js 2007-08-23 17:12:38 UTC (rev 2449)
+++ trunk/ui/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js 2007-08-23 17:39:39 UTC (rev 2450)
@@ -1,4 +1,4 @@
-if (!Richfaces) var Richfaces = {};
+if (!window.Richfaces) window.Richfaces = {};
Richfaces.PanelBar = Class.create();
Modified: trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/scriptaculo.js
===================================================================
--- trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/scriptaculo.js 2007-08-23 17:12:38 UTC (rev 2449)
+++ trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/scriptaculo.js 2007-08-23 17:39:39 UTC (rev 2450)
@@ -2032,8 +2032,8 @@
/*
Support for Drag and Drop in AJAX-JSF environment.
*/
-if (!Richfaces) {
- var Richfaces = {};
+if (!window.Richfaces) {
+ window.Richfaces = {};
}
if (!Richfaces.AJAX) {
Richfaces.AJAX = {};
Modified: trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js
===================================================================
--- trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js 2007-08-23 17:12:38 UTC (rev 2449)
+++ trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js 2007-08-23 17:39:39 UTC (rev 2450)
@@ -1,4 +1,4 @@
-if (!RichFaces) var RichFaces = {};
+if (!window.RichFaces) window.RichFaces = {};
var Suggestion = {};
Suggestion.Base = function() {
};
18 years, 8 months
JBoss Rich Faces SVN: r2449 - trunk/framework/impl/src/main/java/org/richfaces/component.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-08-23 13:12:38 -0400 (Thu, 23 Aug 2007)
New Revision: 2449
Modified:
trunk/framework/impl/src/main/java/org/richfaces/component/UISwitchablePanel.java
Log:
UISwitchablePanel renderedValue field removed
Modified: trunk/framework/impl/src/main/java/org/richfaces/component/UISwitchablePanel.java
===================================================================
--- trunk/framework/impl/src/main/java/org/richfaces/component/UISwitchablePanel.java 2007-08-23 17:09:18 UTC (rev 2448)
+++ trunk/framework/impl/src/main/java/org/richfaces/component/UISwitchablePanel.java 2007-08-23 17:12:38 UTC (rev 2449)
@@ -60,8 +60,6 @@
*/
public static final String DEFAULT_METHOD = SERVER_METHOD;
- private transient Object renderedValue;
-
private String switchType;
public String getSwitchType() {
18 years, 8 months
JBoss Rich Faces SVN: r2448 - in trunk/ui/tabPanel/src/main: java/org/richfaces and 4 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-08-23 13:09:18 -0400 (Thu, 23 Aug 2007)
New Revision: 2448
Added:
trunk/ui/tabPanel/src/main/java/org/richfaces/taglib/
trunk/ui/tabPanel/src/main/java/org/richfaces/taglib/TabPanelTagBase.java
trunk/ui/tabPanel/src/main/java/org/richfaces/taglib/TabPanelTagHandlerBase.java
Modified:
trunk/ui/tabPanel/src/main/config/component/tabPanel.xml
trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java
trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java
trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java
trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/scripts/tabPanel.js
Log:
http://jira.jboss.com/jira/browse/RF-662 fixed
Modified: trunk/ui/tabPanel/src/main/config/component/tabPanel.xml
===================================================================
--- trunk/ui/tabPanel/src/main/config/component/tabPanel.xml 2007-08-23 16:07:41 UTC (rev 2447)
+++ trunk/ui/tabPanel/src/main/config/component/tabPanel.xml 2007-08-23 17:09:18 UTC (rev 2448)
@@ -24,10 +24,12 @@
<tag>
<name>tabPanel</name>
<classname>org.richfaces.taglib.TabPanelTag</classname>
- <superclass>
- org.ajax4jsf.webapp.taglib.HtmlComponentTagBase
- </superclass>
+ <superclass>org.richfaces.taglib.TabPanelTagBase</superclass>
</tag>
+ <taghandler generate="true">
+ <classname>org.richfaces.taglib.TabPanelTagHandler</classname>
+ <superclass>org.richfaces.taglib.TabPanelTagHandlerBase</superclass>
+ </taghandler>
<property>
<name>converterMessage</name>
<classname>java.lang.String</classname>
@@ -77,7 +79,7 @@
<classname>java.lang.String</classname>
<description>A CSS class to be applied to all tabs</description>
</property>
- <property>
+ <property exist="true" existintag="true">
<name>selectedTab</name>
<classname>java.lang.Object</classname>
<description>Attribute defines name of selected tab</description>
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java 2007-08-23 16:07:41 UTC (rev 2447)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java 2007-08-23 17:09:18 UTC (rev 2448)
@@ -25,7 +25,6 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
-import javax.faces.el.ValueBinding;
/**
* JSF component class
@@ -64,37 +63,12 @@
return ((UITab) component).getName();
}
- public ValueBinding getValueBinding(String name) {
- if ("value".equals(name)) {
- ValueBinding binding = super.getValueBinding("selectedTab");
- if (binding == null) {
- binding = super.getValueBinding(name);
- }
-
- return binding;
- } else {
- return super.getValueBinding(name);
- }
- }
-
public Object getValue() {
- if (selectedTab != null) {
- return selectedTab;
+ if (renderedValue != null) {
+ return renderedValue;
}
-
- Object localValue = getLocalValue();
- if (localValue != null) {
- return localValue;
- }
- //do not use VB for selectedTab here, because it'll be returned for "value" VB queue
- //see UITabPanel#getValueBinding(String) for more
- ValueBinding vb = getValueBinding("value");
- if (vb != null) {
- return vb.getValue(getFacesContext());
- }
-
- return null;
+ return super.getValue();
}
public void setValue(Object value) {
@@ -107,7 +81,7 @@
* @return selectedTab value from local variable or value bindings
*/
public Object getSelectedTab() {
- return selectedTab;
+ return getValue();
}
/**
@@ -116,14 +90,10 @@
* @param tab
*/
public void setSelectedTab(Object tab) {
- this.selectedTab = tab;
+ setValue(tab);
}
public Object getRenderedValue() {
- if (renderedValue != null) {
- return renderedValue;
- }
-
return getValue();
}
@@ -131,24 +101,14 @@
this.renderedValue = renderedValue;
}
- private Object selectedTab;
private Object renderedValue;
- public void setLocalValueSet(boolean localValueSet) {
- //dumb hack to know that we've just update "value" vb
- if (!localValueSet) {
- this.selectedTab = null;
- }
- super.setLocalValueSet(localValueSet);
- }
-
private transient Object restoredRenderedValue;
public Object saveState(FacesContext context) {
- Object[] state = new Object[3];
+ Object[] state = new Object[2];
state[0] = super.saveState(context);
- state[1] = selectedTab;
- state[2] = renderedValue;
+ state[1] = renderedValue;
return state;
}
@@ -156,8 +116,7 @@
public void restoreState(FacesContext context, Object state) {
Object[] states = (Object[]) state;
super.restoreState(context, states[0]);
- this.selectedTab = states[1];
- this.renderedValue = states[2];
+ this.renderedValue = states[1];
this.restoredRenderedValue = getRenderedValue();
}
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java 2007-08-23 16:07:41 UTC (rev 2447)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java 2007-08-23 17:09:18 UTC (rev 2448)
@@ -227,6 +227,7 @@
public void encodeTabs(FacesContext context, UITabPanel tabPanel) throws IOException {
ComponentVariables componentVariables = ComponentsVariableResolver.getVariables(this, tabPanel);
+ tabPanel.setRenderedValue(null);
Object checkedValue = checkValue(tabPanel.getValue());
boolean useFirstRenderedTab = checkedValue == null;
@@ -238,7 +239,7 @@
{
UITab tab = (UITab) iter.next();
- if (tab.isRendered()) {
+ if (tab.isRendered() && !tab.isDisabled()) {
if (firstRenderedTab == null) {
firstRenderedTab = tab;
}
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java 2007-08-23 16:07:41 UTC (rev 2447)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java 2007-08-23 17:09:18 UTC (rev 2448)
@@ -84,7 +84,7 @@
protected boolean shouldRenderTab(UITab tab) {
String method = tab.getSwitchTypeOrDefault();
- return (tab.isActive() || UISwitchablePanel.CLIENT_METHOD.equals(method));
+ return (tab.isActive() || !tab.isDisabled() && UISwitchablePanel.CLIENT_METHOD.equals(method));
}
public void encodeBegin(FacesContext context, UIComponent component)
Added: trunk/ui/tabPanel/src/main/java/org/richfaces/taglib/TabPanelTagBase.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/taglib/TabPanelTagBase.java (rev 0)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/taglib/TabPanelTagBase.java 2007-08-23 17:09:18 UTC (rev 2448)
@@ -0,0 +1,72 @@
+/**
+ * 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.richfaces.taglib;
+
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.webapp.taglib.HtmlComponentTagBase;
+
+/**
+ *
+ * <br /><br />
+ *
+ * Created 23.08.2007
+ * @author Nick Belaevski
+ * @since 3.1
+ */
+
+public abstract class TabPanelTagBase extends HtmlComponentTagBase {
+
+ private boolean _selectedTabSet = false;
+ private String _value = null;
+
+ private void logValueDeprecation(String value) {
+ FacesContext facesContext = getFacesContext();
+ facesContext.getExternalContext().log("selectedTab attribute has been already set for component with id: " + this.getId() +
+ "[" + this._value + "]. value attribute is deprecated and thus has been dropped!");
+ }
+
+ public void setSelectedTab(String tab) {
+ if (_value != null) {
+ logValueDeprecation(_value);
+ }
+
+ _selectedTabSet = false;
+ super.setValue(tab);
+ _selectedTabSet = true;
+ }
+
+ public void setValue(String value) {
+ if (!_selectedTabSet) {
+ _value = value;
+ super.setValue(value);
+ } else {
+ logValueDeprecation(value);
+ }
+ }
+
+ public void release() {
+ super.release();
+ _selectedTabSet = false;
+ _value = null;
+ }
+}
Added: trunk/ui/tabPanel/src/main/java/org/richfaces/taglib/TabPanelTagHandlerBase.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/taglib/TabPanelTagHandlerBase.java (rev 0)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/taglib/TabPanelTagHandlerBase.java 2007-08-23 17:09:18 UTC (rev 2448)
@@ -0,0 +1,48 @@
+/**
+ * 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.richfaces.taglib;
+
+import org.ajax4jsf.webapp.taglib.AjaxComponentHandler;
+
+import com.sun.facelets.tag.MetaRuleset;
+import com.sun.facelets.tag.jsf.ComponentConfig;
+
+/**
+ *
+ * <br /><br />
+ *
+ * Created 23.08.2007
+ * @author Nick Belaevski
+ * @since 3.1
+ */
+
+public abstract class TabPanelTagHandlerBase extends AjaxComponentHandler {
+
+ public TabPanelTagHandlerBase(ComponentConfig config) {
+ super(config);
+ }
+
+ protected MetaRuleset createMetaRuleset(Class type) {
+ return super.createMetaRuleset(type).alias("selectedTab", "value");
+ }
+
+}
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-08-23 16:07:41 UTC (rev 2447)
+++ trunk/ui/tabPanel/src/main/resources/org/richfaces/renderkit/html/scripts/tabPanel.js 2007-08-23 17:09:18 UTC (rev 2448)
@@ -1,4 +1,4 @@
-if (!RichFaces) var RichFaces = {};
+if (!window.RichFaces) window.RichFaces = {};
var RichFaces_FF_Loaded = (RichFaces.navigatorType() == "FF");
18 years, 8 months