[richfaces-svn-commits] JBoss Rich Faces SVN: r11897 - in trunk/ui/tree/src/main: java/org/richfaces/component and 1 other directory.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Thu Dec 18 15:22:31 EST 2008
Author: nbelaevski
Date: 2008-12-18 15:22:31 -0500 (Thu, 18 Dec 2008)
New Revision: 11897
Modified:
trunk/ui/tree/src/main/config/component/tree.xml
trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java
Log:
https://jira.jboss.org/jira/browse/RF-5382
Modified: trunk/ui/tree/src/main/config/component/tree.xml
===================================================================
--- trunk/ui/tree/src/main/config/component/tree.xml 2008-12-18 19:29:00 UTC (rev 11896)
+++ trunk/ui/tree/src/main/config/component/tree.xml 2008-12-18 20:22:31 UTC (rev 11897)
@@ -315,6 +315,16 @@
<name>disableKeyboardNavigation</name>
<classname>boolean</classname>
</property>
+
+ <property>
+ <name>ajaxNodeSelectionEncodeBehavior</name>
+ <classname>java.lang.String</classname>
+ </property>
+
+ <property>
+ <name>ajaxChildActivationEncodeBehavior</name>
+ <classname>java.lang.String</classname>
+ </property>
</component>
&listeners;
Modified: trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java 2008-12-18 19:29:00 UTC (rev 11896)
+++ trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java 2008-12-18 20:22:31 UTC (rev 11897)
@@ -61,7 +61,6 @@
import org.richfaces.component.state.events.ExpandAllCommandEvent;
import org.richfaces.component.state.events.ExpandNodeCommandEvent;
import org.richfaces.component.state.events.TreeStateCommandEvent;
-import org.richfaces.event.AjaxExpandedEvent;
import org.richfaces.event.DragListener;
import org.richfaces.event.DropListener;
import org.richfaces.event.NodeExpandedEvent;
@@ -94,6 +93,12 @@
public abstract class UITree extends UIDataAdaptor implements
TreeListenerEventsProducer, Draggable, Dropzone, AjaxComponent {
+ public static final String ENCODE_BEHAVIOR_NONE = "none";
+
+ public static final String ENCODE_BEHAVIOR_SUBTREE = "subtree";
+
+ public static final String ENCODE_BEHAVIOR_NODE = "node";
+
private transient boolean allowCachedModel = false;
public static final String COMPONENT_TYPE = "org.richfaces.Tree";
@@ -104,7 +109,7 @@
public final static String PRESERVE_MODEL_REQUEST = "request";
- public final static String PRESERVE_MODEL_NONE = "none";
+ public final static String PRESERVE_MODEL_NONE = ENCODE_BEHAVIOR_NONE;
public final static String SWITCH_SERVER = "server";
@@ -816,6 +821,12 @@
public abstract void setSimilarityGroupingId(String similarityGroupingId);
+ public abstract String getAjaxChildActivationEncodeBehavior();
+ public abstract void setAjaxChildActivationEncodeBehavior(String behavior);
+
+ public abstract String getAjaxNodeSelectionEncodeBehavior();
+ public abstract void setAjaxNodeSelectionEncodeBehavior(String behavior);
+
public void addChangeExpandListener(NodeExpandedListener listener) {
addFacesListener(listener);
}
@@ -1306,17 +1317,39 @@
return result;
}
+ private void handleNodeEncodeBehavior(String behavior) {
+ if (ENCODE_BEHAVIOR_NODE.equals(behavior)) {
+ addNodeRequestKey(getRowKey());
+ } else if (ENCODE_BEHAVIOR_SUBTREE.equals(behavior)) {
+ addRequestKey(getRowKey());
+ } else if (!ENCODE_BEHAVIOR_NONE.equals(behavior)) {
+ throw new IllegalArgumentException("Unsupported behavior value: " + behavior + "!");
+ }
+ }
+
@Override
protected void addAjaxKeyEvent(FacesEvent event) {
if (event instanceof TreeAjaxEvent) {
TreeAjaxEvent treeAjaxEvent = (TreeAjaxEvent) event;
if (TreeAjaxEventType.EXPANSION.equals(treeAjaxEvent.getEventType())) {
addRequestKey(getRowKey());
+ } else if (TreeAjaxEventType.SELECTION.equals(treeAjaxEvent.getEventType())) {
+ String behavior = getAjaxNodeSelectionEncodeBehavior();
+ if (behavior == null || behavior.length() == 0) {
+ super.addAjaxKeyEvent(event);
+ } else {
+ handleNodeEncodeBehavior(behavior);
+ }
} else {
super.addAjaxKeyEvent(event);
}
} else {
- super.addAjaxKeyEvent(event);
+ String behavior = getAjaxChildActivationEncodeBehavior();
+ if (behavior == null || behavior.length() == 0) {
+ super.addAjaxKeyEvent(event);
+ } else {
+ handleNodeEncodeBehavior(behavior);
+ }
}
}
}
\ No newline at end of file
More information about the richfaces-svn-commits
mailing list