package org.tgdb.webapp.action.model; import org.tgdb.form.FormDataManager; import org.tgdb.TgDbCaller; import org.tgdb.TgDbFormDataManagerFactory; 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; public class GetStrainAction extends TgDbAction { public GetStrainAction() {} public String getName() { return "GetStrainAction"; } public boolean performAction(HttpServletRequest req, ServletContext context) throws ApplicationException { try { HttpSession se = req.getSession(); TgDbCaller _caller = (TgDbCaller)se.getAttribute("caller"); FormDataManager fdm = getFormDataManager(TgDbFormDataManagerFactory.STRAIN, TgDbFormDataManagerFactory.WEB_FORM, req); String strain_id = req.getParameter("strainid"); if(exists(strain_id)) { fdm.put("strain_id", strain_id); //FIXME!!! - Add a nice generic method in TgDbAction class to refresh the formdatamanager se.setAttribute(TgDbFormDataManagerFactory.getInstanceName(TgDbFormDataManagerFactory.STRAIN), fdm); } else { strain_id = fdm.getValue("strain_id"); } req.setAttribute("straindto", modelManager.getStrain(Integer.parseInt(strain_id), _caller, "superscript")); req.setAttribute("strainlinks", modelManager.getStrainLinks(Integer.parseInt(strain_id), _caller)); return true; } catch (ApplicationException e) { throw e; } catch (Exception e) { e.printStackTrace(); throw new ApplicationException("Could not retrieve model.", e); } } }