package org.tgdb.webapp.action.expression;
import java.util.Collection;
import org.tgdb.TgDbCaller;
import org.tgdb.exceptions.ApplicationException;
import org.tgdb.webapp.action.TgDbAction;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.tgdb.TgDbFormDataManagerFactory;
import org.tgdb.form.FormDataManager;
import org.tgdb.model.modelmanager.ExpressionModelDTO;
public class GetExpressionModelAction extends TgDbAction {
public String getName() {
return "GetExpressionModelAction";
}
public boolean performAction(HttpServletRequest req, ServletContext context) throws ApplicationException {
try {
HttpSession se = req.getSession();
TgDbCaller _caller = (TgDbCaller)se.getAttribute("caller");
FormDataManager fdm = getFormDataManager(TgDbFormDataManagerFactory.EXPRESSION_MODEL, TgDbFormDataManagerFactory.WEB_FORM, req);
FormDataManager _fdm = getFormDataManager(TgDbFormDataManagerFactory.EXPMODEL, TgDbFormDataManagerFactory.WEB_FORM, req);
String exid = req.getParameter("exid");
if(exists(exid)){
fdm.put("exid", exid);
se.setAttribute(TgDbFormDataManagerFactory.getInstanceName(TgDbFormDataManagerFactory.EXPRESSION_MODEL), fdm);
}
else{
exid = fdm.getValue("exid");
}
ExpressionModelDTO expression = modelManager.getExpressionModel(new Integer(exid).intValue(), _caller);
req.setAttribute("expression", expression);
req.setAttribute("references", expression.getReferences_dtos());
//all references connected to a model
Collection all_references = modelManager.getReferences(Integer.parseInt(_fdm.getValue("eid")), _caller);
//remove assigned references
all_references.removeAll(expression.getReferences_dtos());
req.setAttribute("all_references", all_references);
req.setAttribute("exfiles", modelManager.getExpressionModelFiles(new Integer(exid).intValue(), _caller));
req.setAttribute("emap_terms", modelManager.getOntologyTerms(new Integer(exid).intValue(), "EMAP", _caller));
req.setAttribute("ma_terms", modelManager.getOntologyTerms(new Integer(exid).intValue(), "MA", _caller));
// req.setAttribute("gross_anatomy_terms", modelManager.getTermsByOntology("EMAP"));
} catch (Exception e) {
// throw new ApplicationException("GetExpressionModelAction Failed to perform action", e);
logger.error(getStackTrace(e));
}
return true;
}
}