gov.nih.nci.ncicb.cadsr.contexttree.CDEBrowserTreeData.java Source code

Java tutorial

Introduction

Here is the source code for gov.nih.nci.ncicb.cadsr.contexttree.CDEBrowserTreeData.java

Source

/*L
 * Copyright Oracle inc, SAIC-F
 *
 * Distributed under the OSI-approved BSD 3-Clause License.
 * See http://ncip.github.com/cadsr-util/LICENSE.txt for details.
 */

package gov.nih.nci.ncicb.cadsr.contexttree;

import gov.nih.nci.ncicb.cadsr.common.cdebrowser.DataElementSearchBean;
import gov.nih.nci.ncicb.cadsr.common.formbuilder.struts.common.FormConstants;
import gov.nih.nci.ncicb.cadsr.common.persistence.dao.AbstractDAOFactory;
import gov.nih.nci.ncicb.cadsr.common.persistence.dao.ContextDAO;
import gov.nih.nci.ncicb.cadsr.common.resource.Context;
import gov.nih.nci.ncicb.cadsr.common.servicelocator.ApplicationServiceLocator;
import gov.nih.nci.ncicb.cadsr.common.util.SessionHelper;
import gov.nih.nci.ncicb.webtree.ContextNode;
import gov.nih.nci.ncicb.webtree.LazyActionTreeModel;
import gov.nih.nci.ncicb.webtree.LazyActionTreeNode;

import java.io.Serializable;

import java.util.Collection;
import java.util.Iterator;

import javax.faces.context.FacesContext;

import javax.servlet.http.HttpSession;

import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.custom.tree2.TreeModelBase;

//import org.apache.catalina.connector.Request;

public class CDEBrowserTreeData implements Serializable {
    private static final long serialVersionUID = 1L;

    protected Log log = LogFactory.getLog(CDEBrowserTreeData.class.getName());
    private static AbstractDAOFactory daoFactory = null;
    private static ApplicationServiceLocator appServiceLocator = null;
    LazyActionTreeNode treeData = null;
    TreeModelBase treeModel;

    public CDEBrowserTreeData() {
    }

    public CDEBrowserTreeData(TreeModelBase treeMdl) {
        treeModel = treeMdl;
    }

    private LazyActionTreeNode buildTree() {
        log.info("Building CDE Browser tree start ....");
        ContextDAO dao = daoFactory.getContextDAO();

        LazyActionTreeNode contextFolder = new LazyActionTreeNode("Context Folder", "caDSR Contexts",
                "javascript:performAction('P_PARAM_TYPE=CONTEXT" + "&NOT_FIRST_DISPLAY=1&performQuery=yes')",
                false);
        contextFolder.setParent(null);
        contextFolder.setTreeModel(new LazyActionTreeModel(contextFolder));
        boolean excludeTraining = true;
        boolean excludeTest = true;
        boolean noBuildException = true;

        try {
            FacesContext facesContext = FacesContext.getCurrentInstance();
            HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);

            //first build a text folder node context.
            Collection<Context> contexts = (Collection) session.getAttribute(FormConstants.ALL_CONTEXTS);
            if (contexts == null || contexts.size() < 1) {
                contexts = dao.getAllContexts();
                DataElementSearchBean desb = (DataElementSearchBean) (SessionHelper.getInfoBean(session, "desb"));
                if (desb == null) {
                    desb = new DataElementSearchBean();
                    desb.initDefaultContextPreferences();
                }
                desb.getContextsList(contexts);
            }
            for (Iterator iter = contexts.iterator(); iter.hasNext();) {
                Context context = (Context) iter.next();

                LazyActionTreeNode contextNode = new ContextNode("Context Folder",
                        context.getName() + " (" + context.getDescription() + ")",
                        "javascript:performAction('P_PARAM_TYPE=CONTEXT&P_IDSEQ=" + context.getConteIdseq()
                                + "&P_CONTE_IDSEQ=" + context.getConteIdseq()
                                + StringEscapeUtils.escapeHtml(
                                        "&PageId=DataElementsGroup&NOT_FIRST_DISPLAY=1&performQuery=yes")
                                + "')",
                        context.getConteIdseq(), false);
                contextFolder.addLeaf(contextNode);
            }

        } catch (Exception e) {
            noBuildException = false;
            log.error("Exception caught when building the tree", e);
            throw new RuntimeException(e);
        }
        contextFolder.setLoaded(noBuildException);
        contextFolder.setExpanded(noBuildException);
        log.info("Finished Building CDE Browser tree");

        return contextFolder;

    }

    public void setAppServiceLocator(ApplicationServiceLocator appServiceLocator) {
        this.appServiceLocator = appServiceLocator;
    }

    public ApplicationServiceLocator getAppServiceLocator() {
        return appServiceLocator;
    }

    public void refreshTree() {
        setTreeData(this.buildTree());
    }

    public synchronized void setTreeData(LazyActionTreeNode treeData) {
        this.treeData = treeData;
    }

    public LazyActionTreeNode getTreeData() {
        if (treeData == null)
            setTreeData(buildTree());
        return treeData;
    }

    public void setDaoFactory(AbstractDAOFactory daoFactory) {
        this.daoFactory = daoFactory;
    }

    public AbstractDAOFactory getDaoFactory() {
        return daoFactory;
    }
}