Package com.psddev.dari.util

Examples of com.psddev.dari.util.HtmlWriter


            // Render the page.
            if (Static.isInlineEditingAllContents(request)) {
                response = new LazyWriterResponse(request, response);
            }

            writer = new HtmlWriter(response.getWriter());

            ((HtmlWriter) writer).putAllStandardDefaults();

            request.setAttribute("sections", new PullThroughCache<String, Section>() {
                @Override
                protected Section produce(String name) {
                    return Query.from(Section.class).where("internalName = ?", name).first();
                }
            });

            beginPage(request, response, writer, page);

            if (!response.isCommitted()) {
                request.getSession();
            }

            String context = request.getParameter("_context");
            boolean contextNotBlank = !ObjectUtils.isBlank(context);
            boolean embed = ObjectUtils.coalesce(
                    ObjectUtils.to(Boolean.class, request.getParameter("_embed")),
                    contextNotBlank);

            String layoutPath = findLayoutPath(mainObject, embed);

            if (page != null && ObjectUtils.isBlank(layoutPath)) {
                layoutPath = findLayoutPath(page, embed);

                if (!embed && ObjectUtils.isBlank(layoutPath)) {
                    layoutPath = page.getRendererPath();
                }
            }

            if (ObjectUtils.isBlank(layoutPath) &&
                    Static.isPreview(request)) {
                layoutPath = findLayoutPath(mainObject, true);
            }

            String typePath = mainType.as(Renderer.TypeModification.class).getPath();
            boolean rendered = false;

            try {
                if (contextNotBlank) {
                    ContextTag.Static.pushContext(request, context);
                }

                if (!ObjectUtils.isBlank(layoutPath)) {
                    rendered = true;
                    JspUtils.include(request, response, writer, StringUtils.ensureStart(layoutPath, "/"));

                } else if (page != null) {
                    Page.Layout layout = page.getLayout();

                    if (layout != null) {
                        rendered = true;
                        renderSection(request, response, writer, layout.getOutermostSection());
                    }
                }

                if (!rendered && !embed && !ObjectUtils.isBlank(typePath)) {
                    rendered = true;
                    JspUtils.include(request, response, writer, StringUtils.ensureStart(typePath, "/"));
                }

                if (!rendered && mainObject instanceof Renderer) {
                    rendered = true;
                    ((Renderer) mainObject).renderObject(request, response, (HtmlWriter) writer);
                }

            } finally {
                if (contextNotBlank) {
                    ContextTag.Static.popContext(request);
                }
            }

            if (!rendered) {
                if (Settings.isProduction()) {
                    chain.doFilter(request, response);
                    return;

                } else {
                    StringBuilder message = new StringBuilder();

                    if (embed) {
                        message.append("@Renderer.EmbedPath required on [");
                        message.append(mainObject.getClass().getName());
                        message.append("] to render it in [");
                        message.append(ObjectUtils.isBlank(context) ? "_embed" : context);
                        message.append("] context");

                    } else {
                        message.append("@Renderer.Path or @Renderer.LayoutPath required on [");
                        message.append(mainObject.getClass().getName());
                        message.append("] to render it");
                    }

                    message.append(" (Object: [");
                    message.append(mainState.getLabel());
                    message.append("], ID: [");
                    message.append(mainState.getId().toString().replaceAll("-", ""));
                    message.append("])!");

                    throw new IllegalStateException(message.toString());
                }
            }

            endPage(request, response, writer, page);

            if (Static.isInlineEditingAllContents(request)) {
                LazyWriterResponse lazyResponse = (LazyWriterResponse) response;
                Map<String, String> map = new HashMap<String, String>();
                State state = State.getInstance(mainObject);
                StringBuilder marker = new StringBuilder();

                map.put("id", state.getId().toString());
                map.put("label", state.getLabel());
                map.put("typeLabel", state.getType().getLabel());

                marker.append("<span class=\"cms-mainObject\" style=\"display: none;\" data-object=\"");
                marker.append(StringUtils.escapeHtml(ObjectUtils.toJson(map)));
                marker.append("\"></span>");

                lazyResponse.getLazyWriter().writeLazily(marker.toString());
            }

        } finally {
            Database.Static.restoreDefault();

            if (response instanceof LazyWriterResponse) {
                ((LazyWriterResponse) response).getLazyWriter().writePending();
            }
        }

        if (Settings.isDebug() ||
                (Static.isPreview(request) &&
                !Boolean.TRUE.equals(request.getAttribute(PERSISTENT_PREVIEW_ATTRIBUTE)))) {
            return;
        }

        String contentType = response.getContentType();

        if (contentType == null ||
                !StringUtils.ensureEnd(contentType, ";").startsWith("text/html;")) {
            return;
        }

        Object mainObject = PageFilter.Static.getMainObject(request);

        if (mainObject != null && user != null) {
            if (!JspUtils.isError(request)) {
                user.saveAction(request, mainObject);
            }

            @SuppressWarnings("all")
            ToolPageContext page = new ToolPageContext(getServletContext(), request, response);
            State mainState = State.getInstance(mainObject);

            page.setDelegate(writer instanceof HtmlWriter ? (HtmlWriter) writer : new HtmlWriter(writer));

            page.writeStart("style", "type", "text/css");
                page.writeCss(".bsp-inlineEditorMain",
                        "background", "rgba(32, 52, 63, 0.8) !important",
                        "color", "white !important",
View Full Code Here


            if (ObjectUtils.isBlank(script) && object instanceof Renderer) {
                ((Renderer) object).renderObject(
                        request,
                        response,
                        writer instanceof HtmlWriter ? (HtmlWriter) writer : new HtmlWriter(writer));

            } else {
                renderScript(request, response, writer, engine, script);
            }
View Full Code Here

        @SuppressWarnings("unchecked")
        Set<Directory.Path> newPaths = (Set<Directory.Path>) state.getExtras().get("cms.newPaths");

        if (!ObjectUtils.isBlank(newPaths)) {
            StringWriter string = new StringWriter();
            @SuppressWarnings("resource")
            HtmlWriter html = new HtmlWriter(string);

            html.writeStart("ul");
                for (Directory.Path p : newPaths) {
                    Site s = p.getSite();

                    html.writeStart("li");
                        html.writeStart("a",
                                "target", "_blank",
                                "href", p.getPath());
                            html.writeHtml(p.getPath());
                        html.writeEnd();

                        html.writeHtml(" (");

                        if (s != null) {
                            html.writeHtml(s.getLabel());
                            html.writeHtml(" - ");
                        }

                        html.writeHtml(p.getType());
                        html.writeHtml(")");
                    html.writeEnd();
                }
            html.writeEnd();

            jsonResponse.put("_urlWidgetHtml", string.toString());
        }

        // Evaluate all dynamic texts.
View Full Code Here

            if (ObjectUtils.isBlank(displayHtml)) {
                return null;

            } else {
                StringWriter sw = new StringWriter();
                HtmlWriter writer = new HtmlWriter(sw);

                writer.writeStart("div", "class", "widget widget-" + getInternalName());
                    writer.writeStart("h1");
                        writer.writeHtml(page.getObjectLabel(this));
                    writer.writeEnd();
                    writer.write(displayHtml);
                writer.writeEnd();

                return sw.toString();
            }

        } catch (UnsupportedOperationException error) {
View Full Code Here

            if (!urlMatcher.matches()) {
                return null;
            }

            StringWriter string = new StringWriter();
            HtmlWriter html = new HtmlWriter(string);

            try {
                try {
                    updateHtml(urlMatcher, html);

                } finally {
                    html.close();
                }

            } catch (IOException error) {
                throw new IllegalStateException(error);
            }
View Full Code Here

        if (!ObjectUtils.isBlank(context)) {
            ContextTag.Static.pushContext(request, context);
        }

        try {
            pageWriter = new HtmlWriter(pageContext.getOut());
            layoutTag = null;
            areas = null;

            for (Tag parent = getParent(); parent != null; parent = parent.getParent()) {
                if (parent instanceof RenderTag) {
View Full Code Here

                        }
                    }

                    request.setAttribute("grid", grid);
                    request.setAttribute("gridArea", gridArea);
                    writeValueWithAttributes(new HtmlWriter(body), value);
                    areas.put(area.toString(), body.toString());

                } finally {
                    if (contextSet) {
                        ContextTag.Static.popContext(request);
View Full Code Here

                    if (body != null) {
                        if (areas != null) {
                            if (!ObjectUtils.isBlank(area)) {
                                if (!attributes.isEmpty()) {
                                    StringWriter stringWriter = new StringWriter();
                                    @SuppressWarnings("resource")
                                    HtmlWriter htmlWriter = new HtmlWriter(stringWriter);

                                    htmlWriter.writeStart("div", attributes);
                                        htmlWriter.write(body);
                                    htmlWriter.writeEnd();

                                    body = stringWriter.toString();
                                }

                                areas.put(area, body);
View Full Code Here

    @Override
    @SuppressWarnings("resource")
    public String createDisplayHtml(ToolPageContext page, Object object) throws Exception {
        StringWriter sw = new StringWriter();
        HtmlWriter writer = new HtmlWriter(sw);
        State state = State.getInstance(object);

        writer.writeStart("div", "class", "frame");
            writer.writeStart("a",
                    "href", page.toolUrl(getTool(), path,
                            "id", state != null ? state.getId() : null,
                            "historyId", page.param(UUID.class, "historyId")));
            writer.writeEnd();
        writer.writeEnd();

        return sw.toString();
    }
View Full Code Here

            try {
                chain.doFilter(request, capturing);

            } finally {
                @SuppressWarnings("resource")
                HtmlWriter writer = new HtmlWriter(response.getWriter());

                writer.writeTag("!doctype html");
                writer.writeStart("html");
                    writer.writeStart("body");
                        writer.writeStart("textarea", "id", "frameBody");
                            writer.writeHtml(capturing.getOutput());
                        writer.writeEnd();
                    writer.writeEnd();
                writer.writeEnd();
            }

        } else {
            chain.doFilter(request, response);
        }
View Full Code Here

TOP

Related Classes of com.psddev.dari.util.HtmlWriter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.