Package eu.planets_project.tb.gui.backing.exp

Source Code of eu.planets_project.tb.gui.backing.exp.ExpTypeViewer$CreateViewResultsForDO

/*******************************************************************************
* Copyright (c) 2007, 2010 The Planets Project Partners.
*
* All rights reserved. This program and the accompanying
* materials are made available under the terms of the
* Apache License, Version 2.0 which accompanies
* this distribution, and is available at
* http://www.apache.org/licenses/LICENSE-2.0
*
*******************************************************************************/
/**
*
*/
package eu.planets_project.tb.gui.backing.exp;

import java.util.ArrayList;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import eu.planets_project.services.datatypes.Parameter;
import eu.planets_project.tb.gui.backing.ExperimentBean;
import eu.planets_project.tb.gui.backing.exp.view.ViewResultBean;
import eu.planets_project.tb.gui.util.JSFUtil;
import eu.planets_project.tb.impl.AdminManagerImpl;
import eu.planets_project.tb.impl.model.measure.MeasurementImpl;
import eu.planets_project.tb.impl.services.mockups.workflow.ViewerWorkflow;

/**
* @author <a href="mailto:Andrew.Jackson@bl.uk">Andy Jackson</a>
*
*/
public class ExpTypeViewer extends ExpTypeBackingBean {
    private Log log = LogFactory.getLog(ExpTypeViewer.class);
   
    /**
     * @return the viewerService
     */
    public String getViewerService() {
        ExperimentBean expBean = (ExperimentBean)JSFUtil.getManagedObject("ExperimentBean");
        log.info("Got params: "+expBean.getExperiment().getExperimentExecutable().getParameters() );
        log.info("Got param: "+expBean.getExperiment().getExperimentExecutable().getParameters().get(ViewerWorkflow.PARAM_SERVICE) );
        return expBean.getExperiment().getExperimentExecutable().getParameters().get(ViewerWorkflow.PARAM_SERVICE);
    }

    /**
     * @param viewerService the viewerService to set
     */
    public void setViewerService(String viewerService) {
        log.info("Setting the Viewer service to: "+viewerService);
        ExperimentBean expBean = (ExperimentBean)JSFUtil.getManagedObject("ExperimentBean");
        expBean.getExperiment().getExperimentExecutable().getParameters().put(ViewerWorkflow.PARAM_SERVICE, viewerService);
        expBean.updateExperiment();
    }

    /* (non-Javadoc)
     * @see eu.planets_project.tb.gui.backing.exp.ExpTypeBackingBean#getStageBeans()
     */
    @Override
    public List<ExperimentStageBean> getStageBeans() {
        return getWorkflow(AdminManagerImpl.EMULATE).getStages();
    }

    /* (non-Javadoc)
     * @see eu.planets_project.tb.gui.backing.exp.ExpTypeBackingBean#getObservables()
     */
    @Override
    public HashMap<String,List<MeasurementImpl>> getObservables() {
        return getWorkflow(AdminManagerImpl.EMULATE).getObservables();
    }
   
    HashMap<String,List<MeasurementImpl>> manualObsCache;
    long cacheExperimentID;
    /* (non-Javadoc)
     * @see eu.planets_project.tb.gui.backing.exp.ExpTypeBackingBean#getManualObservables()
     */
    @Override
    public HashMap<String,List<MeasurementImpl>> getManualObservables() {
      ExperimentBean expBean = (ExperimentBean)JSFUtil.getManagedObject("ExperimentBean");
      if(manualObsCache==null||(cacheExperimentID != expBean.getExperiment().getEntityID())){
        cacheExperimentID = expBean.getExperiment().getEntityID();
       
          //query for properties that have been added from the Ontology
          HashMap<String,Vector<String>> ontoPropIDs = new HashMap<String, Vector<String>>();
          for(ExperimentStageBean stage : expBean.getStages()){
            ontoPropIDs.put(stage.getName(),expBean.getExperiment().getExperimentExecutable().getManualProperties(stage.getName()));
          }
         
          //this is the static list of manual properties - normally empty
          HashMap<String,List<MeasurementImpl>> staticWFobs = getWorkflow(AdminManagerImpl.EMULATE).getManualObservables();
         
          //FIXME AL: staticWFobs returns wrong items - where are they added - exclude staticWFobs for now
          //manualObsCache = mergeManualObservables(staticWFobs, ontoPropIDs);
          manualObsCache = mergeManualObservables(null, ontoPropIDs);
      }
      return manualObsCache;
    }
   
    /* ------------------------------------------- */
   
    /**
     * A Bean to hold the results on each digital object.
     */
    public class CreateViewResultsForDO  extends ResultsForDigitalObjectBean {

        List<ViewResultBean> vurl = new ArrayList<ViewResultBean>();

        /**
         * @param input
         */
        public CreateViewResultsForDO(String input) {
            super(input);
            vurl = ViewResultBean.createResultsFromExecutionRecords( this.getExecutionRecords() );
        }
       
       
        /**
         *
         * @return
         */
        public List<ViewResultBean> getViewResults() {
            return vurl;
        }
       
       
    }
   
    /**
     * @return
     */
    public List<CreateViewResultsForDO> getViewResults() {
        ExperimentBean expBean = (ExperimentBean)JSFUtil.getManagedObject("ExperimentBean");
        List<CreateViewResultsForDO> results = new Vector<CreateViewResultsForDO>();
        // Populate using the results:
        for( String file : expBean.getExperimentInputData().values() ) {
            CreateViewResultsForDO res = new CreateViewResultsForDO(file);
            results.add(res);
        }

        // Now return the results:
        return results;
    }

    /*
   * TODO AL: version 1.0 uses this structure to check for a valid workflow (exp-type specific) configuration.
   * (non-Javadoc)
   * @see eu.planets_project.tb.gui.backing.exp.ExpTypeBackingBean#checkExpTypeBean_Step2_WorkflowConfigurationOK()
   */
    @Override
    public void checkExpTypeBean_Step2_WorkflowConfigurationOK() throws Exception{
    // TODO Auto-generated method stub
  }

  /* (non-Javadoc)
   * @see eu.planets_project.tb.gui.backing.exp.ExpTypeBackingBean#isExperimentBeanType()
   */
  @Override
  public boolean isExperimentBeanType() {
    ExperimentBean expBean = (ExperimentBean)JSFUtil.getManagedObject("ExperimentBean");
        if( expBean == null ) return false;
    if( AdminManagerImpl.EMULATE.equals(expBean.getEtype()) ) return true;
    return false;
  }

  /*
   * TODO AL: version 1.0: adapt this when porting this exp type to the WEE
   * @see eu.planets_project.tb.gui.backing.exp.ExpTypeBackingBean#getWorkflowParameters()
   */
  @Override
  public Map<String, List<Parameter>> getWorkflowParameters() {
    // TODO Auto-generated method stub
    return null;
  }

  /*
   * TODO AL: version 1.0: adapt this when porting this exp type to the WEE
   * @see eu.planets_project.tb.gui.backing.exp.ExpTypeBackingBean#setWorkflowParameters(Map<String,List<Parameter>> params)
   */
  @Override
  public void setWorkflowParameters(Map<String,List<Parameter>> params) {
    // TODO Auto-generated method stub
   
  }
   
   
}
TOP

Related Classes of eu.planets_project.tb.gui.backing.exp.ExpTypeViewer$CreateViewResultsForDO

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.