NIHVIVO-646 Break setup method into two parts, so that FreeMarker controllers that aren't generating a full page only do the part of the setup they need. In particular, the autocomplete controller doesn't need to do page setup.

This commit is contained in:
rjy7 2010-06-17 21:45:02 +00:00
parent 97a753b66e
commit 369a0f0a93
2 changed files with 13 additions and 5 deletions

View file

@ -24,7 +24,8 @@ public class FreeMarkerComponentGenerator extends FreeMarkerHttpServlet {
private static final Log log = LogFactory.getLog(FreeMarkerHttpServlet.class.getName()); private static final Log log = LogFactory.getLog(FreeMarkerHttpServlet.class.getName());
FreeMarkerComponentGenerator(HttpServletRequest request, HttpServletResponse response) { FreeMarkerComponentGenerator(HttpServletRequest request, HttpServletResponse response) {
doSetup(request, response); doSetup(request, response);
setUpPage();
} }
public String getIdentity() { public String getIdentity() {

View file

@ -67,6 +67,7 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
try { try {
doSetup(request, response); doSetup(request, response);
setUpPage();
setTitleAndBody(); setTitleAndBody();
write(response); write(response);
@ -82,7 +83,7 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
doGet(request, response); doGet(request, response);
} }
// Basic setup needed by all controllers // Basic setup needed by all FreeMarker controllers
protected void doSetup(HttpServletRequest request, HttpServletResponse response) { protected void doSetup(HttpServletRequest request, HttpServletResponse response) {
if ( !(this instanceof FreeMarkerComponentGenerator) ) { if ( !(this instanceof FreeMarkerComponentGenerator) ) {
@ -100,6 +101,14 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
vreq = new VitroRequest(request); vreq = new VitroRequest(request);
this.response = response; this.response = response;
portal = vreq.getPortal(); portal = vreq.getPortal();
setTemplateLoader();
}
// Setup needed by all controllers that display a full page.
// Controllers that display parts of a page, respond to an Ajax request, etc., do not use this.
protected void setUpPage() {
urlBuilder = new UrlBuilder(portal); urlBuilder = new UrlBuilder(portal);
// RY Can this be removed? Do templates need it? Ideally, they should not. // RY Can this be removed? Do templates need it? Ideally, they should not.
@ -111,8 +120,6 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
appName = portal.getAppName(); appName = portal.getAppName();
setSharedVariable("siteName", appName); setSharedVariable("siteName", appName);
setTemplateLoader();
TabMenu menu = getTabMenu(); TabMenu menu = getTabMenu();
root.put("tabMenu", menu); root.put("tabMenu", menu);
@ -123,7 +130,7 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
root.put("tagline", portal.getShortHand()); root.put("tagline", portal.getShortHand());
root.put("breadcrumbs", BreadCrumbsUtil.getBreadCrumbsDiv(vreq)); root.put("breadcrumbs", BreadCrumbsUtil.getBreadCrumbsDiv(vreq));
String themeDir = getThemeDir(); String themeDir = getThemeDir();
setUrls(themeDir); setUrls(themeDir);