@Override
 public void process(TemplatingContext templatingContext) throws ProcessingException {
   RequestParameters parameters = RequestParameters.getRequestParameters(context);
   super.process(templatingContext);
   if (parameters.get("exportType").equals("full") || parameters.get("exportType").equals("xml")) {
     templatingContext.put("recordDetails", recordDetailsExport);
     templatingContext.put("dateConverter", new PatternDateConverter("yyyyMMdd"));
   }
   if (parameters.get("exportType").equals("xml")) {
     HttpContext httpContext = HttpContext.getHttpContext(context);
     httpContext.setContentType("application/xml");
   }
 }
  /** {@inheritDoc} */
  public void process(
      Parameters parameters,
      MVCContext mvcContext,
      TemplatingContext templatingContext,
      HttpContext httpContext,
      I18nContext i18nContext,
      CoralSession coralSession)
      throws ProcessingException {
    String skin = parameters.get("skin");

    String path = parameters.get("path");
    SiteResource site = getSite();
    path = path.replace(',', '/');
    boolean asText = parameters.get("type", "binary").equals("text");
    boolean asXML = parameters.get("type", "binary").equals("xml");
    try {
      String contentType;
      String contents;
      if (asText) {
        contentType = "text/plain";
        contents = skinService.getContentFileContents(site, skin, path, httpContext.getEncoding());
      } else if (asXML) {
        contentType = "text/xml";
        contents = skinService.getContentFileContents(site, skin, path, httpContext.getEncoding());
        contents =
            "<?xml version=\"1.0\" encoding=\""
                + httpContext.getEncoding()
                + "\"?>\n"
                + "<contents>\n"
                + "  <![CDATA["
                + contents
                + "]]>\n"
                + "</contents>\n";
      } else {
        contentType = "application/octet-stream";
        contents = skinService.getContentFileContents(site, skin, path, httpContext.getEncoding());
      }
      httpContext.disableCache();
      httpContext.setResponseLength(StringUtils.getByteCount(contents, httpContext.getEncoding()));
      fileDownload.dumpData(
          new ByteArrayInputStream(contents.getBytes(httpContext.getEncoding())),
          contentType,
          (new Date()).getTime());
    } catch (IOException e) {
      logger.error("Couldn't write to output", e);
    } catch (Exception e) {
      templatingContext.put("errorResult", "result.exception");
      templatingContext.put("stackTrace", new StackTrace(e).toStringArray());
      logger.error("exception occured", e);
    }
  }
 public void prepareDefault(Context context) throws ProcessingException {
   Parameters parameters = RequestParameters.getRequestParameters(context);
   CoralSession coralSession = (CoralSession) context.getAttribute(CoralSession.class);
   HttpContext httpContext = HttpContext.getHttpContext(context);
   I18nContext i18nContext = I18nContext.getI18nContext(context);
   TemplatingContext templatingContext = TemplatingContext.getTemplatingContext(context);
   SiteResource site = getSite();
   try {
     templatingContext.put("styles", Arrays.asList(styleService.getStyles(coralSession, site)));
     long parent_node_id = parameters.getLong("parent_node_id", -1);
     if (parent_node_id == -1) {
       templatingContext.put("parent_node", getHomePage());
     } else {
       templatingContext.put(
           "parent_node",
           NavigationNodeResourceImpl.getNavigationNodeResource(coralSession, parent_node_id));
     }
   } catch (Exception e) {
     throw new ProcessingException("Screen Error " + e);
   }
 }