Example usage for org.apache.wicket.request.http WebResponse setContentType

List of usage examples for org.apache.wicket.request.http WebResponse setContentType

Introduction

In this page you can find the example usage for org.apache.wicket.request.http WebResponse setContentType.

Prototype

public abstract void setContentType(final String mimeType);

Source Link

Document

Set the content type on the response, if appropriate in the subclass.

Usage

From source file:com.apachecon.memories.link.ImageLink.java

License:Apache License

public void onClick() {
    RequestCycle.get().scheduleRequestHandlerAfterCurrent(new IRequestHandler() {

        @Override//  w w w .j  a va2s.  c  om
        public void respond(IRequestCycle requestCycle) {
            WebResponse response = (WebResponse) requestCycle.getResponse();
            response.setContentType(getModelObject().getContentType());

            try {
                InputStream is = getModelObject().getInputStream();

                byte[] buffer = new byte[512];
                int length = 0;
                while ((length = is.read(buffer)) > 0) {
                    response.write(buffer, 0, length);
                }
                response.flush();

                is.close();
            } catch (Exception e) {
                response.flush();
            }
        }

        @Override
        public void detach(IRequestCycle requestCycle) {
            // TODO Auto-generated method stub

        }
    });
}

From source file:com.gitblit.wicket.pages.ExportTicketPage.java

License:Apache License

public ExportTicketPage(final PageParameters params) {
    super(params);

    if (params.get("r").isEmpty()) {
        error(getString("gb.repositoryNotSpecified"));
        redirectToInterceptPage(new RepositoriesPage());
    }// ww  w. j ava2s  .  c  om

    getRequestCycle().scheduleRequestHandlerAfterCurrent(new IRequestHandler() {

        @Override
        public void respond(IRequestCycle requestCycle) {
            WebResponse response = (WebResponse) requestCycle.getResponse();

            final String repositoryName = WicketUtils.getRepositoryName(params);
            RepositoryModel repository = app().repositories().getRepositoryModel(repositoryName);
            String objectId = WicketUtils.getObject(params).toLowerCase();
            if (objectId.endsWith(".json")) {
                objectId = objectId.substring(0, objectId.length() - ".json".length());
            }
            long id = Long.parseLong(objectId);
            TicketModel ticket = app().tickets().getTicket(repository, id);

            String content = TicketSerializer.serialize(ticket);
            contentType = "application/json; charset=UTF-8";
            response.setContentType(contentType);
            try {
                response.getOutputStream().write(content.getBytes("UTF-8"));
            } catch (Exception e) {
                logger.error("Failed to write text response", e);
            }
        }

        @Override
        public void detach(IRequestCycle requestCycle) {
            // TODO Auto-generated method stub

        }
    });
}

From source file:com.gitblit.wicket.pages.ExportTicketPage.java

License:Apache License

@Override
protected void setHeaders(WebResponse response) {
    super.setHeaders(response);
    if (!StringUtils.isEmpty(contentType)) {
        response.setContentType(contentType);
    }/*from w w w.jav a  2 s .co m*/
}

From source file:com.gitblit.wicket.pages.RawPage.java

License:Apache License

public RawPage(final PageParameters params) {
    super(params);

    if (params.get("r").isEmpty()) {
        error(getString("gb.repositoryNotSpecified"));
        redirectToInterceptPage(new RepositoriesPage());
    }//from  ww w  . ja v a 2 s . com

    getRequestCycle().scheduleRequestHandlerAfterCurrent(new IRequestHandler() {

        @Override
        public void respond(IRequestCycle requestCycle) {
            WebResponse response = (WebResponse) requestCycle.getResponse();

            final String repositoryName = WicketUtils.getRepositoryName(params);
            final String objectId = WicketUtils.getObject(params);
            final String blobPath = WicketUtils.getPath(params);

            String[] encodings = getEncodings();
            GitBlitWebSession session = GitBlitWebSession.get();
            UserModel user = session.getUser();

            RepositoryModel model = app().repositories().getRepositoryModel(user, repositoryName);
            if (model == null) {
                // user does not have permission
                error(getString("gb.canNotLoadRepository") + " " + repositoryName);
                redirectToInterceptPage(new RepositoriesPage());
                return;
            }

            Repository r = app().repositories().getRepository(repositoryName);
            if (r == null) {
                error(getString("gb.canNotLoadRepository") + " " + repositoryName);
                redirectToInterceptPage(new RepositoriesPage());
                return;
            }

            if (StringUtils.isEmpty(blobPath)) {
                // objectid referenced raw view
                byte[] binary = JGitUtils.getByteContent(r, objectId);
                if (binary == null) {
                    final String objectNotFound = MessageFormat
                            .format("Raw page failed to find object {0} in {1}", objectId, repositoryName);
                    logger.error(objectNotFound);
                    throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, objectNotFound);
                }
                contentType = "application/octet-stream";
                response.setContentType(contentType);
                response.setContentLength(binary.length);
                try {
                    response.getOutputStream().write(binary);
                } catch (Exception e) {
                    logger.error("Failed to write binary response", e);
                }
            } else {
                // standard raw blob view
                RevCommit commit = JGitUtils.getCommit(r, objectId);
                if (commit == null) {
                    final String commitNotFound = MessageFormat
                            .format("Raw page failed to find commit {0} in {1}", objectId, repositoryName);
                    logger.error(commitNotFound);
                    throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, commitNotFound);
                }

                String filename = blobPath;
                if (blobPath.indexOf('/') > -1) {
                    filename = blobPath.substring(blobPath.lastIndexOf('/') + 1);
                }

                String extension = null;
                if (blobPath.lastIndexOf('.') > -1) {
                    extension = blobPath.substring(blobPath.lastIndexOf('.') + 1);
                }

                // Map the extensions to types
                Map<String, Integer> map = new HashMap<String, Integer>();
                for (String ext : app().settings().getStrings(Keys.web.imageExtensions)) {
                    map.put(ext.toLowerCase(), 2);
                }
                for (String ext : app().settings().getStrings(Keys.web.binaryExtensions)) {
                    map.put(ext.toLowerCase(), 3);
                }

                final String blobNotFound = MessageFormat.format(
                        "Raw page failed to find blob {0} in {1} @ {2}", blobPath, repositoryName, objectId);

                if (extension != null) {
                    int type = 0;
                    if (map.containsKey(extension)) {
                        type = map.get(extension);
                    }
                    switch (type) {
                    case 2:
                        // image blobs
                        byte[] image = JGitUtils.getByteContent(r, commit.getTree(), blobPath, true);
                        if (image == null) {
                            logger.error(blobNotFound);
                            throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND,
                                    blobNotFound);
                        }
                        contentType = "image/" + extension.toLowerCase();
                        response.setContentType(contentType);
                        response.setContentLength(image.length);
                        try {
                            response.getOutputStream().write(image);
                        } catch (IOException e) {
                            logger.error("Failed to write image response", e);
                        }
                        break;
                    case 3:
                        // binary blobs (download)
                        byte[] binary = JGitUtils.getByteContent(r, commit.getTree(), blobPath, true);
                        if (binary == null) {
                            logger.error(blobNotFound);
                            throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND,
                                    blobNotFound);
                        }
                        contentType = "application/octet-stream";
                        response.setContentLength(binary.length);
                        response.setContentType(contentType);

                        try {
                            String userAgent = GitBlitRequestUtils.getServletRequest().getHeader("User-Agent");

                            if (userAgent != null && userAgent.indexOf("MSIE 5.5") > -1) {
                                response.setHeader("Content-Disposition",
                                        "filename=\"" + URLEncoder.encode(filename, Constants.ENCODING) + "\"");
                            } else if (userAgent != null && userAgent.indexOf("MSIE") > -1) {
                                response.setHeader("Content-Disposition", "attachment; filename=\""
                                        + URLEncoder.encode(filename, Constants.ENCODING) + "\"");
                            } else {
                                response.setHeader("Content-Disposition", "attachment; filename=\""
                                        + new String(filename.getBytes(Constants.ENCODING), "latin1") + "\"");
                            }
                        } catch (UnsupportedEncodingException e) {
                            response.setHeader("Content-Disposition",
                                    "attachment; filename=\"" + filename + "\"");
                        }

                        try {
                            response.getOutputStream().write(binary);
                        } catch (IOException e) {
                            logger.error("Failed to write binary response", e);
                        }
                        break;
                    default:
                        // plain text
                        String content = JGitUtils.getStringContent(r, commit.getTree(), blobPath, encodings);
                        if (content == null) {
                            logger.error(blobNotFound);
                            throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND,
                                    blobNotFound);
                        }
                        contentType = "text/plain; charset=UTF-8";
                        response.setContentType(contentType);
                        try {
                            response.getOutputStream().write(content.getBytes("UTF-8"));
                        } catch (Exception e) {
                            logger.error("Failed to write text response", e);
                        }
                    }

                } else {
                    // plain text
                    String content = JGitUtils.getStringContent(r, commit.getTree(), blobPath, encodings);
                    if (content == null) {
                        logger.error(blobNotFound);
                        throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND,
                                blobNotFound);
                    }
                    contentType = "text/plain; charset=UTF-8";
                    response.setContentType(contentType);
                    try {
                        response.getOutputStream().write(content.getBytes("UTF-8"));
                    } catch (Exception e) {
                        logger.error("Failed to write text response", e);
                    }
                }
            }
            r.close();
        }

        @Override
        public void detach(IRequestCycle requestCycle) {
            // TODO Auto-generated method stub

        }

    });

}

From source file:com.googlecode.wicket.jquery.ui.calendar.CalendarModelBehavior.java

License:Apache License

/**
 * Gets the new {@link IRequestHandler} that will respond the list of {@link CalendarEvent} in a json format
 *
 * @return the {@link IRequestHandler}//from   ww w  . j  a  v a  2 s  .c om
 */
private IRequestHandler newRequestHandler() {
    return new IRequestHandler() {
        @Override
        public void respond(final IRequestCycle requestCycle) {
            WebResponse response = (WebResponse) requestCycle.getResponse();

            final String encoding = Application.get().getRequestCycleSettings().getResponseRequestEncoding();
            response.setContentType("text/json; charset=" + encoding);
            response.disableCaching();

            if (model != null) {
                List<? extends CalendarEvent> list = model.getObject(); // calls load()

                if (list != null) {
                    StringBuilder builder = new StringBuilder("[ ");

                    int count = 0;
                    for (CalendarEvent event : list) {
                        if (model instanceof ICalendarVisitor) {
                            event.accept((ICalendarVisitor) model); //last chance to set options
                        }

                        if (count++ > 0) {
                            builder.append(", ");
                        }
                        builder.append(event.toString());
                    }

                    builder.append(" ]");

                    LOG.debug(builder.toString());
                    response.write(builder);
                }
            }
        }

        @Override
        public void detach(final IRequestCycle requestCycle) {
        }
    };
}

From source file:com.googlecode.wicket.jquery.ui.form.autocomplete.AutoCompleteSourceBehavior.java

License:Apache License

/**
 * Gets a new {@link IRequestHandler} that will call {@link #getChoices(String)} and will build be JSON response corresponding to the specified 'input' argument.
 * @param input user input// w  ww  .j  av  a 2 s.  c o  m
 * @return a new {@link IRequestHandler}
 */
private IRequestHandler newRequestHandler(final String input) {
    return new IRequestHandler() {
        @Override
        public void respond(final IRequestCycle requestCycle) {
            WebResponse response = (WebResponse) requestCycle.getResponse();

            final String encoding = Application.get().getRequestCycleSettings().getResponseRequestEncoding();
            response.setContentType("text/json; charset=" + encoding);
            response.disableCaching();

            List<T> choices = AutoCompleteSourceBehavior.this.getChoices(input);
            List<String> properties = AutoCompleteSourceBehavior.this.getProperties();

            if (choices != null) {
                StringBuilder builder = new StringBuilder("[ ");

                int index = 0;
                for (T choice : choices) {
                    if (index++ > 0) {
                        builder.append(", ");
                    }

                    builder.append("{ ");
                    builder.append(Options.QUOTE).append("id").append(Options.QUOTE).append(": ")
                            .append(Options.QUOTE).append(Integer.toString(index))
                            .append(Options.QUOTE); /* id is a reserved word */
                    builder.append(", ");
                    builder.append(Options.QUOTE).append("value").append(Options.QUOTE).append(": ")
                            .append(Options.QUOTE).append(renderer.getText(choice))
                            .append(Options.QUOTE); /* value is a reserved word */

                    if (properties != null) {
                        for (String property : properties) {
                            builder.append(", ");
                            builder.append(Options.QUOTE).append(property).append(Options.QUOTE).append(": ")
                                    .append(Options.QUOTE).append(renderer.getText(choice, property))
                                    .append(Options.QUOTE);
                        }
                    }

                    builder.append(" }");
                }

                builder.append(" ]");

                response.write(builder);
            }
        }

        @Override
        public void detach(final IRequestCycle requestCycle) {
        }
    };
}

From source file:com.googlecode.wicket.jquery.ui.kendo.datatable.DataSourceBehavior.java

License:Apache License

/**
 * Gets the new {@link IRequestHandler} that will respond the data in a json format
 *
 * @param first the first row number//from  w w  w  . ja v  a  2s  . c om
 * @param count the count of rows
 * @return a new {@link IRequestHandler}
 */
private IRequestHandler newRequestHandler(final int first, final int count) {
    return new IRequestHandler() {
        @Override
        public void respond(final IRequestCycle requestCycle) {
            WebResponse response = (WebResponse) requestCycle.getResponse();

            final String encoding = Application.get().getRequestCycleSettings().getResponseRequestEncoding();
            response.setContentType("text/json; charset=" + encoding);
            response.disableCaching();

            final long size = provider.size();
            final Iterator<? extends T> iterator = provider.iterator(first, count);

            // builds JSON result //
            StringBuilder builder = new StringBuilder();

            builder.append("{ ");
            builder.append(Options.QUOTE).append("__count").append(Options.QUOTE).append(": ").append(size)
                    .append(", ");
            builder.append(Options.QUOTE).append("results").append(Options.QUOTE).append(": ");
            builder.append("[ ");

            for (int index = 0; iterator.hasNext(); index++) {
                if (index > 0) {
                    builder.append(", ");
                }

                builder.append(DataSourceBehavior.this.newJsonRow(iterator.next()));
            }

            builder.append(" ] }");

            response.write(builder);
        }

        @Override
        public void detach(final IRequestCycle requestCycle) {
        }
    };
}

From source file:com.googlecode.wicket.kendo.ui.behavior.ChoiceModelBehavior.java

License:Apache License

/**
 * Get a new {@link IRequestHandler}/*from w ww  .j av a  2s. co  m*/
 * @return a new {@link IRequestHandler}
 */
protected IRequestHandler newRequestHandler() {
    return new IRequestHandler() {

        @Override
        public void respond(final IRequestCycle requestCycle) {
            WebResponse response = (WebResponse) requestCycle.getResponse();

            final String encoding = Application.get().getRequestCycleSettings().getResponseRequestEncoding();
            response.setContentType("application/json; charset=" + encoding);
            response.disableCaching();

            List<T> list = ChoiceModelBehavior.this.getChoices();

            if (list != null) {
                int count = 0;
                StringBuilder builder = new StringBuilder("[");

                for (T object : list) {
                    if (count++ > 0) {
                        builder.append(",");
                    }

                    builder.append(ChoiceModelBehavior.this.renderer.toJson(object));
                }

                builder.append("]");

                response.write(builder);
            }
        }

        @Override
        public void detach(final IRequestCycle requestCycle) {
            // noop
        }
    };
}

From source file:com.googlecode.wicket.kendo.ui.datatable.DataProviderBehavior.java

License:Apache License

/**
 * Gets the new {@link IRequestHandler} that will respond the data in a json format
 *
 * @param first the first row number//from   ww  w .  j a v  a2 s. c  om
 * @param count the count of rows
 * @return a new {@code IRequestHandler}
 */
private IRequestHandler newRequestHandler(final int first, final int count) {
    return new IRequestHandler() {

        @Override
        public void respond(final IRequestCycle requestCycle) {
            WebResponse response = (WebResponse) requestCycle.getResponse();

            final String encoding = Application.get().getRequestCycleSettings().getResponseRequestEncoding();
            response.setContentType("application/json; charset=" + encoding);
            response.disableCaching();

            final long size = provider.size();
            final Iterator<? extends T> iterator = provider.iterator(first, count);

            // builds JSON result //
            StringBuilder builder = new StringBuilder();

            builder.append("{ ");
            BuilderUtils.append(builder, "__count", size);
            builder.append(", ");
            builder.append(Options.QUOTE).append("results").append(Options.QUOTE).append(": ");
            builder.append("[ ");

            if (iterator != null) {
                for (int index = 0; iterator.hasNext(); index++) {
                    if (index > 0) {
                        builder.append(", ");
                    }

                    builder.append(DataProviderBehavior.this.newJsonRow(iterator.next()));
                }
            }

            builder.append(" ] }");

            response.write(builder);
        }

        @Override
        public void detach(final IRequestCycle requestCycle) {
            provider.detach();
        }
    };
}

From source file:com.googlecode.wicket.kendo.ui.datatable.DataSourceBehavior.java

License:Apache License

/**
 * Gets the new {@link IRequestHandler} that will respond the data in a json format
 *
 * @param first the first row number//from  ww  w.j av  a  2 s .  c  o  m
 * @param count the count of rows
 * @return a new {@link IRequestHandler}
 */
private IRequestHandler newRequestHandler(final int first, final int count) {
    return new IRequestHandler() {

        @Override
        public void respond(final IRequestCycle requestCycle) {
            WebResponse response = (WebResponse) requestCycle.getResponse();

            final String encoding = Application.get().getRequestCycleSettings().getResponseRequestEncoding();
            response.setContentType("text/json; charset=" + encoding);
            response.disableCaching();

            final long size = provider.size();
            final Iterator<? extends T> iterator = provider.iterator(first, count);

            // builds JSON result //
            StringBuilder builder = new StringBuilder();

            builder.append("{ ");
            builder.append(Options.QUOTE).append("__count").append(Options.QUOTE).append(": ").append(size)
                    .append(", ");
            builder.append(Options.QUOTE).append("results").append(Options.QUOTE).append(": ");
            builder.append("[ ");

            for (int index = 0; iterator.hasNext(); index++) {
                if (index > 0) {
                    builder.append(", ");
                }

                builder.append(DataSourceBehavior.this.newJsonRow(iterator.next()));
            }

            builder.append(" ] }");

            response.write(builder);
        }

        @Override
        public void detach(final IRequestCycle requestCycle) {
            provider.detach();
        }
    };
}