package org.tgdb.webapp.action.gene;
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.GeneDTO;
public class GetGeneSimpleAction extends TgDbAction {
public String getName() {
return "GetGeneSimpleAction";
}
public boolean performAction(HttpServletRequest request, ServletContext context) throws ApplicationException {
try {
HttpSession se = request.getSession();
TgDbCaller _caller = (TgDbCaller)se.getAttribute("caller");
FormDataManager fdm = getFormDataManager(TgDbFormDataManagerFactory.GENE, TgDbFormDataManagerFactory.WEB_FORM, request);
if(exists(request.getParameter("gaid"))) {
fdm.put("gaid", request.getParameter("gaid"));
//FIXME!!! - Add a nice generic method in TgDbAction class to refresh the formdatamanager
se.setAttribute(TgDbFormDataManagerFactory.getInstanceName(TgDbFormDataManagerFactory.GENE), fdm);
}
// int gaid = Integer.parseInt(request.getParameter("gaid"));
int gaid = Integer.parseInt(fdm.getValue("gaid"));
GeneDTO gene = modelManager.getGene(gaid, _caller);
request.setAttribute("gene", gene);
request.setAttribute("chromosomes", modelManager.getChromosomesForSpecies(_caller.getSid(), _caller));
//for promoters only!
if(gene.getDistinguish().equalsIgnoreCase("promoter")) {
request.setAttribute("promoter_links", modelManager.getPromoterLinks(gaid, _caller));
}
// }
// else {
// throw new ApplicationException("Missing required request parameter (gaid).");
// }
return true;
} catch (Exception e) {
throw new ApplicationException(e.getMessage(), e);
}
}
}