@Override
  public ViewOutput render(Object view, ViewTemplateLoader templateLoader) {

    ViewMap viewMap = null;

    if (view instanceof ViewMap) {
      viewMap = (ViewMap) view;

    } else if (view != null) {
      viewMap = new ViewMap(view);
    }

    if (viewMap != null) {

      Object delegateView = viewMap.get(DELEGATE_VIEW_KEY);
      if (delegateView != null) {

        ViewRenderer delegateViewRenderer = ViewRenderer.createRenderer(delegateView);
        if (delegateViewRenderer != null) {

          return delegateViewRenderer.render(delegateView, templateLoader);
        }
      }
    }

    return () -> null;
  }
Exemplo n.º 2
0
 protected String putContent(String name, String content) {
   return renderer.putContent(name, content);
 }
Exemplo n.º 3
0
 protected void includeScriptModels(Class<? extends Model> modelClass, boolean includeHasMany) {
   renderer.includeScriptModels(modelClass, includeHasMany);
 }
Exemplo n.º 4
0
 protected void includeScriptModels(Class<? extends Model> modelClass) {
   renderer.includeScriptModels(modelClass, false);
 }
Exemplo n.º 5
0
 protected void includeScriptModels(boolean includeHasMany) {
   renderer.includeScriptModels(Model.class, includeHasMany);
 }
Exemplo n.º 6
0
 protected String includeScriptModel(Model model, int position, boolean includeHasMany) {
   return renderer.includeScriptModel(model, position, includeHasMany);
 }
Exemplo n.º 7
0
 protected String getContent(String name) {
   return renderer.getContent(name);
 }
 private void loadRecipiesList() {
   view.render(recipeUseCases.getRecipes());
 }
Exemplo n.º 9
0
 public void addExternalStyle(String href) {
   renderer.addExternalStyle(href);
 }
Exemplo n.º 10
0
 public void addExternalStyle(StyleSheet asset) {
   renderer.addExternalStyle(asset);
 }
Exemplo n.º 11
0
 public void addExternalStyle(Class<? extends StyleSheet> asset) {
   renderer.addExternalStyle(asset);
 }
Exemplo n.º 12
0
 public void addExternalScript(ScriptFile asset) {
   renderer.addExternalScript(asset);
 }
Exemplo n.º 13
0
 public void addExternalScript(String src) {
   renderer.addExternalScript(src);
 }
Exemplo n.º 14
0
 protected void setTitle(Object title) {
   renderer.setTitle(title);
 }
Exemplo n.º 15
0
 protected boolean hasContent(String name) {
   return renderer.hasContent(name);
 }
Exemplo n.º 16
0
 protected void yieldTo(String name) {
   if (name != null && name.length() > 0) {
     renderer.addPosition(name);
   }
 }
Exemplo n.º 17
0
 protected void includeScriptEnvironment() {
   renderer.includeScriptEnvironment = true;
 }
 /**
  * Called by the view. It displays the recipie given.
  *
  * @param recipe
  */
 public void displayRecipe(Recipe recipe) {
   view.render(recipe);
 }
  @Override
  protected void doExecute(String finalLocation, ActionInvocation invocation) throws Exception {
    if (LOG.isDebugEnabled()) {
      LOG.debug("In doExecute. finalLocation: " + finalLocation + ", renderer: " + renderer);
    }

    OutputStream os = null;
    try {
      final ActionContext actionContext = invocation.getInvocationContext();
      final HttpServletRequest request = (HttpServletRequest) actionContext.get(HTTP_REQUEST);
      final HttpServletResponse response = (HttpServletResponse) actionContext.get(HTTP_RESPONSE);
      final SimpleServletResponseWrapper responseWrapper =
          new SimpleServletResponseWrapper(response);
      final ServletContext servletContext = (ServletContext) actionContext.get(SERVLET_CONTEXT);

      ViewRenderer viewRenderer;
      if (renderer == null) {
        viewRenderer = container.getInstance(ViewRenderer.class);
      } else {
        viewRenderer = container.getInstance(ViewRenderer.class, renderer);
      }

      if (viewRenderer == null) {
        final String err =
            "Cannot get an instance of ViewRenderer with the name '" + renderer + "'.";
        LOG.error(err);
        throw new AssertionError(err);
      }

      // render view
      viewRenderer.render(
          finalLocation,
          request,
          responseWrapper,
          servletContext,
          actionContext.getLocale(),
          invocation.getStack(),
          invocation.getAction());

      // Set the content type
      response.setContentType(PDF_MIME_TYPE);

      // Set the content-disposition
      if (contentDisposition != null) {
        response.addHeader("Content-Disposition", conditionalParse(contentDisposition, invocation));
      }

      // Set the cache control headers if necessary
      if (!allowCaching) {
        response.addHeader("Pragma", "no-cache");
        response.addHeader("Cache-Control", "no-cache");
      }

      if (LOG.isTraceEnabled()) {
        LOG.trace("Content before parsing:\n" + responseWrapper.toString());
      }

      // parse response wrapper
      final Document document = parseContent(responseWrapper.toString());
      final Element head = document.head();

      // add CSS from cssPathsSet parameter
      if (cssPathsSet != null && !cssPathsSet.isEmpty()) {
        for (String css : cssPathsSet) {
          // remove leading slash
          if (css.startsWith("\\")) {
            css = css.substring(1);
          }
          head.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + css + "\" />");
        }
      }

      // add style for font family that supports unicode
      head.append(FONT_STYLE_TAG);

      final String content = document.html();

      if (LOG.isTraceEnabled()) {
        LOG.trace("Content after parsing:\n" + content);
      }

      // put pdf stream into response
      createPdfStream(content, findBaseUrl(request), response.getOutputStream());
    } finally {
      if (os != null) {
        os.close();
      }
    }
  }