package org.tgdb.webapp.action.model; 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 org.tgdb.TgDbFormDataManagerFactory; import org.tgdb.form.FormDataManager; public class AssignAvailabilityPreAction extends TgDbAction { public String getName() { return "AssignAvailabilityPreAction"; } public boolean performAction(HttpServletRequest request, ServletContext context) throws ApplicationException { try { TgDbCaller _caller = (TgDbCaller)request.getSession().getAttribute("caller"); FormDataManager fdm = getFormDataManager(TgDbFormDataManagerFactory.EXPMODEL, TgDbFormDataManagerFactory.WEB_FORM, request); int eid = 0; if(exists(request.getParameter("eid"))) { eid = new Integer(request.getParameter("eid")).intValue(); fdm.put("eid", request.getParameter("eid")); //FIXME!!! - Add a nice generic method in TgDbAction class to refresh the formdatamanager request.getSession().setAttribute(TgDbFormDataManagerFactory.getInstanceName(TgDbFormDataManagerFactory.EXPMODEL), fdm); } else { eid = new Integer(fdm.getValue("eid")).intValue(); } request.setAttribute("strains", modelManager.getStrainsConnectedToModel(eid, _caller)); request.setAttribute("repositories", modelManager.getRepositoriesByProject(_caller.getPid())); request.setAttribute("avgenbacks", modelManager.getAvailableGeneticBackgroundsByProject(_caller.getPid())); request.setAttribute("states", modelManager.getStrainStates(_caller)); request.setAttribute("types", modelManager.getStrainTypes(_caller)); return true; } catch (ApplicationException e) { throw e; } catch (Exception e) { throw new ApplicationException("AssignAvailabilityPreAction failed to perform action", e); } } }