[richfaces-issues] [JBoss JIRA] Updated: (RF-7616) UITree does not accept datamodel as value

Nick Belaevski (JIRA) jira-events at lists.jboss.org
Thu Jul 30 10:22:29 EDT 2009


     [ https://jira.jboss.org/jira/browse/RF-7616?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nick Belaevski updated RF-7616:
-------------------------------

       Issue Type: Feature Request  (was: Bug)
    Fix Version/s: Future
         Assignee: Nick Belaevski


> UITree does not accept datamodel as value
> -----------------------------------------
>
>                 Key: RF-7616
>                 URL: https://jira.jboss.org/jira/browse/RF-7616
>             Project: RichFaces
>          Issue Type: Feature Request
>          Components: component-tree
>    Affects Versions: 3.3.1
>            Reporter: John Leed
>            Assignee: Nick Belaevski
>             Fix For: Future
>
>
> UIData accepts both data or a datamodel as its value, in the former case wrapping the data in a datamodel. As a subclass of UIData, UITree should behave the same way. Instead, if the value is set to a TreeDataModel, UITree tries wrapping it in a swingTreeDataModel. This presents a problem if a custom data model is desired.
> Proposed fix:
> protected ExtendedDataModel createDataModel() {
> 	Object value = this.getValue();
> 	if (value != null) {
> 		if (value instanceof TreeDataModel {
> 			return value;
> 		}
> 		else if (value instanceof TreeNode) {
> 			TreeDataModel<TreeNode> treeDataModel = new ClassicTreeDataModel();
> 			treeDataModel.setWrappedData(value);
> 				
> 			if (this.allowCachedModel && PRESERVE_MODEL_REQUEST.equals(getPreserveModel())) {
> 				treeDataModel = new ClassicCacheableTreeDataModel(treeDataModel);
> 			}
> 			return treeDataModel;
> 		} else {
> 			TreeDataModel<javax.swing.tree.TreeNode> swingTreeDataModel = new SwingTreeDataModel();
> 			swingTreeDataModel.setWrappedData(value);
> 			
> 			if (this.allowCachedModel && PRESERVE_MODEL_REQUEST.equals(getPreserveModel())) {
> 				swingTreeDataModel = new SwingCacheableTreeDataModel(swingTreeDataModel);
> 			}
> 			return swingTreeDataModel;
> 		}
> 	} else {
> 		//TODO implement request caching
> 		StackingTreeModel stackingTreeModel = new VisualStackingTreeModel(null);
> 		if (getChildCount() > 0) {
> 			Iterator children = getChildren().iterator();
> 			while (children.hasNext()) {
> 				UIComponent component = (UIComponent) children.next();
> 				if (component instanceof StackingTreeModelProvider) {
> 					StackingTreeModelProvider provider = (StackingTreeModelProvider) component;
> 				stackingTreeModel.addStackingModel(provider.getStackingModel());
> 				}
> 			}
> 		}
> 		
> 		return stackingTreeModel;
> 	}
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the richfaces-issues mailing list