try {
if (desktop != null) { //recycle
final Page page = Utils.getMainPage(desktop);
if (page != null) {
final Execution exec =
new ExecutionImpl(svlctx, httpreq, httpres, desktop, page);
fixContentType(response);
wappc.getUiEngine()
.recycleDesktop(exec, page, response.getWriter());
} else
desktop = null; //something wrong (not possible; just in case)
}
if (desktop == null) {
desktop = webman.getDesktop(sess, httpreq, httpres, path, true);
if (desktop == null) //forward or redirect
return true;
final RequestInfo ri = new RequestInfoImpl(
wapp, sess, desktop, httpreq,
PageDefinitions.getLocator(wapp, path));
((SessionCtrl)sess).notifyClientRequest(true);
final Page page;
final PageRenderPatch patch = getRenderPatch();
final Writer out = patch.beforeRender(ri);
final UiFactory uf = wappc.getUiFactory();
if (uf.isRichlet(ri, bRichlet)) {
final Richlet richlet = uf.getRichlet(ri, path);
if (richlet == null)
return false; //not found
page = WebManager.newPage(uf, ri, richlet, httpres, path);
final Execution exec =
new ExecutionImpl(svlctx, httpreq, httpres, desktop, page);
fixContentType(response);
wappc.getUiEngine().execNewPage(exec, richlet, page,
out != null ? out: response.getWriter());
} else if (path != null) {
final PageDefinition pagedef = uf.getPageDefinition(ri, path);
if (pagedef == null)
return false; //not found
page = WebManager.newPage(uf, ri, pagedef, httpres, path);
final Execution exec =
new ExecutionImpl(svlctx, httpreq, httpres, desktop, page);
fixContentType(response);
wappc.getUiEngine().execNewPage(exec, pagedef, page,
out != null ? out: response.getWriter());
} else