Author: nbelaevski
Date: 2008-03-31 14:30:27 -0400 (Mon, 31 Mar 2008)
New Revision: 7497
Modified:
trunk/framework/api/src/main/java/org/richfaces/model/CacheableTreeDataModel.java
Log:
http://jira.jboss.com/jira/browse/RF-2875
Modified:
trunk/framework/api/src/main/java/org/richfaces/model/CacheableTreeDataModel.java
===================================================================
---
trunk/framework/api/src/main/java/org/richfaces/model/CacheableTreeDataModel.java 2008-03-31
18:30:16 UTC (rev 7496)
+++
trunk/framework/api/src/main/java/org/richfaces/model/CacheableTreeDataModel.java 2008-03-31
18:30:27 UTC (rev 7497)
@@ -139,6 +139,29 @@
@Override
public Object convertToKey(FacesContext context, String keyString, UIComponent
component, Converter converter) {
- return treeDataModel.convertToKey(context, keyString, component, converter);
+ Object convertedKey = treeDataModel.convertToKey(context, keyString, component,
converter);
+
+ if (convertedKey != null) {
+ final TreeRowKey treeRowKey = (TreeRowKey) convertedKey;
+ try {
+ walk(context, null, new TreeRange() {
+
+ public boolean processChildren(TreeRowKey rowKey) {
+ return rowKey == null || rowKey.isSubKey(treeRowKey);
+ }
+
+ public boolean processNode(TreeRowKey rowKey) {
+ return this.processChildren(rowKey) || rowKey.equals(treeRowKey);
+ }
+
+ }, null);
+ } catch (IOException e) {
+ context.getExternalContext().log(e.getLocalizedMessage(), e);
+
+ return null;
+ }
}
+
+ return convertedKey;
+ }
}