/* Date: November 26, 2010
* Template: PluginScreenJavaTemplateGen.java.ftl
* generator: org.molgenis.generators.ui.PluginScreenJavaTemplateGen 3.3.3
*
* THIS FILE IS A TEMPLATE. PLEASE EDIT :-)
*/
package org.molgenis.mutation.ui.mymutation;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.ui.FreemarkerView;
import org.molgenis.framework.ui.IntegratedPluginController;
import org.molgenis.framework.ui.ScreenController;
import org.molgenis.framework.ui.ScreenView;
import org.molgenis.mutation.ServiceLocator;
import org.molgenis.mutation.dto.PatientSummaryDTO;
import org.molgenis.mutation.service.SearchService;
import org.molgenis.util.HttpServletRequestTuple;
import org.molgenis.util.Tuple;
public class MyMutation extends IntegratedPluginController<MyMutationModel>
{
private static final long serialVersionUID = -623854680198101512L;
public MyMutation(String name, ScreenController<?> parent)
{
super(name, null, parent);
this.setModel(new MyMutationModel(this));
this.getModel().setPatientPager("res/mutation/patientPager.jsp");
}
public ScreenView getView()
{
return new FreemarkerView("MyMutation.ftl", getModel());
}
@Override
public String getCustomHtmlHeaders()
{
String result = super.getCustomHtmlHeaders();
if (CollectionUtils.isEmpty(this.getModel().getPatientSummaryVOList())) result += "<meta http-equiv=\"refresh\" content=\"0; URL=molgenis.do?select=MyMutation&__target=MyMutation&__action=show\">";
return result;
}
public void show(Database db, Tuple request)
{
try
{
SearchService searchService = ServiceLocator.instance().getSearchService();
searchService.setDatabase(db);
List<PatientSummaryDTO> patientSummaryVOs = searchService.findPatientsByUserId(this
.getApplicationController().getLogin().getUserId());
this.getModel().setPatientSummaryVOList(patientSummaryVOs);
((HttpServletRequestTuple) request).getRequest().setAttribute("patientSummaryVOs",
this.getModel().getPatientSummaryVOList());
this.getModel().setRawOutput(this.include(request, this.getModel().getPatientPager()));
}
catch (Exception e)
{
e.printStackTrace();
}
}
@Override
public void reload(Database db)
{
// Dirty hack: Actually the PatientPager should be included here.
// But we need the HttpServletRequest which is not passed to reload().
// So the customHtmlHeaders will issue a request with action==show
// which does the work for us.
}
}