Package org.richfaces.component

Source Code of org.richfaces.component.UIRecursiveTreeNodesAdaptor

/**
*
*/

package org.richfaces.component;

import java.util.Iterator;

import org.apache.commons.collections.iterators.IteratorChain;
import org.richfaces.model.StackingTreeModel;
import org.richfaces.model.StackingTreeModelDataProvider;
import org.richfaces.model.VisualStackingTreeModel;


/**
* JSF component class
*
*/
public abstract class UIRecursiveTreeNodesAdaptor extends UITreeNodesAdaptor {

  public static final String COMPONENT_TYPE = "org.richfaces.RecursiveTreeNodesAdaptor";

  public static final String COMPONENT_FAMILY = "org.richfaces.RecursiveTreeNodesAdaptor";

  public abstract Object getRoots();
  public abstract void setRoots(Object roots);

  public abstract boolean isIncluded();
  public abstract void setIncluded(boolean active);

  public abstract boolean isIncludedRoot();
  public abstract void setIncludedRoot(boolean active);
 
  protected boolean includeNode() {
    return isIncluded() && isIncludedRoot();
  }
 
  public Object getData() {
    return getRoots();
   }
 
  public abstract String getVar();
  public abstract void setVar(String var);
 
  public StackingTreeModel getStackingModel() {
    StackingTreeModel stackingModel = super.getStackingModel();
   
    StackingTreeModel recursiveModel = new VisualStackingTreeModel(getId(), getVar(), new StackingTreeModelDataProvider() {

      public Object getData() {
        return UIRecursiveTreeNodesAdaptor.this.getNodes();
      }
     
    }, UIRecursiveTreeNodesAdaptor.this) {

      public StackingTreeModel getModelById(String id) {
        StackingTreeModel model = super.getModelById(id);
        if (model == null) {
          model = this.getParent().getModelById(id);
        }
       
        return model;
      }

      public Iterator getModelsIterator() {
        IteratorChain chain = new IteratorChain();
        chain.addIterator(super.getModelsIterator());
        chain.addIterator(this.getParent().getModelsIterator());

        return chain;
      }

      protected boolean isActive() {
        return UIRecursiveTreeNodesAdaptor.this.isRendered();
      }
     
      protected boolean isActiveData() {
        return UIRecursiveTreeNodesAdaptor.this.isIncluded() && UIRecursiveTreeNodesAdaptor.this.isIncludedNode();
      }
    };
    stackingModel.addStackingModel(recursiveModel);
   
    return stackingModel;
  }
 
}
TOP

Related Classes of org.richfaces.component.UIRecursiveTreeNodesAdaptor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.