Author: nbelaevski
Date: 2007-11-02 12:15:46 -0400 (Fri, 02 Nov 2007)
New Revision: 3727
Removed:
trunk/ui/tree/src/main/java/org/richfaces/component/CacheableTreeDataModel.java
trunk/ui/tree/src/main/java/org/richfaces/component/CacheableTreeRequestDataModel.java
Modified:
trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java
Log:
http://jira.jboss.com/jira/browse/RF-864
Deleted: trunk/ui/tree/src/main/java/org/richfaces/component/CacheableTreeDataModel.java
===================================================================
---
trunk/ui/tree/src/main/java/org/richfaces/component/CacheableTreeDataModel.java 2007-11-02
16:15:41 UTC (rev 3726)
+++
trunk/ui/tree/src/main/java/org/richfaces/component/CacheableTreeDataModel.java 2007-11-02
16:15:46 UTC (rev 3727)
@@ -1,147 +0,0 @@
-/**
- * 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.component;
-
-import java.io.IOException;
-
-import javax.faces.context.FacesContext;
-
-import org.ajax4jsf.model.DataVisitor;
-import org.ajax4jsf.model.Range;
-import org.richfaces.model.LastElementAware;
-import org.richfaces.model.TreeDataModel;
-import org.richfaces.model.TreeNode;
-import org.richfaces.model.TreeNodeImpl;
-import org.richfaces.model.TreeRowKey;
-
-/**
- * @author Nick - mailto:nbelaevski@exadel.com created 08.01.2007
- *
- */
-public class CacheableTreeDataModel<T> extends TreeDataModel<T> {
-
- private final class Visitor implements DataVisitor, LastElementAware {
- private final DataVisitor visitor;
-
- private Visitor(DataVisitor visitor) {
- this.visitor = visitor;
- }
-
- public void process(FacesContext context, Object rowKey, Object argument)
- throws IOException {
- TreeRowKey treeRowKey = (TreeRowKey) rowKey;
- treeDataModel.setRowKey(treeRowKey);
- nodeAdaptor.setRowData(locateTreeNode(treeRowKey, true), treeDataModel.getRowData());
-
- if (visitor != null) {
- visitor.process(context, rowKey, argument);
- }
- }
-
- public void resetLastElement() {
- if (visitor instanceof LastElementAware) {
- ((LastElementAware) visitor).resetLastElement();
-
- }
- }
-
- public void setLastElement() {
- if (visitor instanceof LastElementAware) {
- ((LastElementAware) visitor).setLastElement();
-
- }
- }
- }
-
- private TreeDataModel<T> treeDataModel;
-
- public boolean isLeaf() {
- TreeRowKey rowKey = (TreeRowKey) getRowKey();
- T treeNode = locateTreeNode(rowKey);
- if (treeNode != null && !nodeAdaptor.isLeaf(treeNode)) {
- return false;
- }
-
- treeNode = treeDataModel.locateTreeNode(rowKey);
- if (treeNode != null) {
- return nodeAdaptor.isLeaf(treeNode);
- }
-
- return false;
- }
-
- public CacheableTreeDataModel(TreeDataModel<T> model) {
- super(model.getClazz(), model.getNodeAdaptor());
- setWrappedData(new TreeNodeImpl());
- setTreeDataModel(model);
- }
-
- public void walkModel(FacesContext context, DataVisitor visitor,
- Range range, Object key, Object argument, boolean last)
- throws IOException {
- treeDataModel.walkModel(context, new Visitor(visitor), range, key,
- argument, last);
- }
-
- public void setTreeDataModel(TreeDataModel<T> treeDataModel) {
- this.treeDataModel = treeDataModel;
- }
-
- public TreeDataModel<T> getTreeDataModel() {
- return treeDataModel;
- }
-
- public void walk(FacesContext context, final DataVisitor dataVisitor,
- Range range, Object rowKey, Object argument, boolean last)
- throws IOException {
-
- T cachedTreeNode = locateTreeNode((TreeRowKey) rowKey);
- T treeNode = treeDataModel.locateTreeNode((TreeRowKey) rowKey);
-
- if (treeNode != null) {
- if (cachedTreeNode == null || (nodeAdaptor.isLeaf(cachedTreeNode) &&
!nodeAdaptor.isLeaf(treeNode))) {
- //fill cache
- treeDataModel.walk(context, new Visitor(dataVisitor), range,
- rowKey, argument, last);
- } else {
- super.walk(context, dataVisitor, range, rowKey, argument, last);
- }
- }
- }
-
- public boolean isTransient() {
- return true;
- }
-
- public void setTransient(boolean newTransientValue) {
- if (!newTransientValue) {
- throw new IllegalArgumentException(
- "ReplaceableTreeDataModel shouldn't be transient!");
- }
- }
-
- @Override
- public TreeNode getTreeNode() {
- // TODO Auto-generated method stub
- return null;
- }
-}
Deleted:
trunk/ui/tree/src/main/java/org/richfaces/component/CacheableTreeRequestDataModel.java
===================================================================
---
trunk/ui/tree/src/main/java/org/richfaces/component/CacheableTreeRequestDataModel.java 2007-11-02
16:15:41 UTC (rev 3726)
+++
trunk/ui/tree/src/main/java/org/richfaces/component/CacheableTreeRequestDataModel.java 2007-11-02
16:15:46 UTC (rev 3727)
@@ -1,41 +0,0 @@
-/**
- * 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.component;
-
-import org.richfaces.model.TreeDataModel;
-
-
-/**
- * @author Nick Belaevski - nbelaevski(a)exadel.com
- * created 06.04.2007
- *
- */
-public class CacheableTreeRequestDataModel extends CacheableTreeDataModel {
-
- public CacheableTreeRequestDataModel(TreeDataModel model) {
- super(model);
- }
-
- public boolean isTransient() {
- return true;
- }
-}
Modified: trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java
===================================================================
--- trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java 2007-11-02 16:15:41
UTC (rev 3726)
+++ trunk/ui/tree/src/main/java/org/richfaces/component/UITree.java 2007-11-02 16:15:46
UTC (rev 3727)
@@ -62,9 +62,12 @@
import org.richfaces.event.NodeSelectedListener;
import org.richfaces.event.TreeListenerEventsProducer;
import org.richfaces.model.AbstractTreeDataModel;
+import org.richfaces.model.CacheableTreeDataModel;
+import org.richfaces.model.ClassicCacheableTreeDataModel;
import org.richfaces.model.ClassicTreeDataModel;
import org.richfaces.model.StackingTreeModel;
import org.richfaces.model.StackingTreeModelProvider;
+import org.richfaces.model.SwingCacheableTreeDataModel;
import org.richfaces.model.SwingTreeDataModel;
import org.richfaces.model.TreeDataModel;
import org.richfaces.model.TreeModelVisualComponentProvider;
@@ -515,14 +518,18 @@
treeDataModel.setWrappedData(value);
if (allowCached && PRESERVE_MODEL_REQUEST.equals(getPreserveModel())) {
- treeDataModel = new CacheableTreeDataModel<TreeNode>(treeDataModel);
+ treeDataModel = new ClassicCacheableTreeDataModel(treeDataModel);
}
return treeDataModel;
} else {
- SwingTreeDataModel swingTreeDataModel = new SwingTreeDataModel();
+ TreeDataModel<javax.swing.tree.TreeNode> swingTreeDataModel = new
SwingTreeDataModel();
swingTreeDataModel.setWrappedData(value);
+ if (allowCached && PRESERVE_MODEL_REQUEST.equals(getPreserveModel())) {
+ swingTreeDataModel = new SwingCacheableTreeDataModel(swingTreeDataModel);
+ }
+
return swingTreeDataModel;
}
} else {