Search in sources :

Example 6 with XmlWriter

use of com.revolsys.record.io.format.xml.XmlWriter in project com.revolsys.open by revolsys.

the class PageInfoHttpMessageConverter method writeHtml.

@SuppressWarnings("unchecked")
private void writeHtml(final OutputStream out, final String url, final PageInfo pageInfo, final boolean showTitle) {
    final XmlWriter writer = new XmlWriter(out);
    writer.startTag(HtmlElem.DIV);
    if (showTitle) {
        writer.element(HtmlElem.H1, pageInfo.getTitle());
        final DocInfo docInfo = pageInfo.getDefaultDocumentation();
        if (docInfo != null) {
            writer.startTag(HtmlElem.DIV);
            writer.attribute(HtmlAttr.STYLE, "margin-bottom: 1em");
            final String description = docInfo.getDescription();
            if (description != null) {
                if (docInfo.isHtml()) {
                    writer.write(description);
                } else {
                    writer.element(HtmlElem.P, description);
                }
            }
            writer.endTag(HtmlElem.DIV);
        }
    }
    final HttpServletRequest request = HttpServletUtils.getRequest();
    for (final String method : pageInfo.getMethods()) {
        @SuppressWarnings("rawtypes") final Map parameterMap = request.getParameterMap();
        writeMethod(writer, url, pageInfo, method, parameterMap);
    }
    final Map<String, PageInfo> pages = pageInfo.getPages();
    final Element pagesElement = pageInfo.getPagesElement();
    if (pagesElement != null) {
        pagesElement.serialize(writer);
    } else if (!pages.isEmpty()) {
        writer.startTag(HtmlElem.DIV);
        writer.attribute(HtmlAttr.CLASS, "resources");
        writer.startTag(HtmlElem.DL);
        for (final Entry<String, PageInfo> childPage : pages.entrySet()) {
            final String childPath = childPage.getKey();
            final PageInfo childPageInfo = childPage.getValue();
            String childUri;
            if (childPath.startsWith("/") || childPath.startsWith("http")) {
                childUri = childPath;
            } else if (url.charAt(url.length() - 1) != '/') {
                childUri = url + "/" + childPath;
            } else {
                childUri = url + childPath;
            }
            writer.startTag(HtmlElem.DT);
            final String childTitle = childPageInfo.getTitle();
            HtmlUtil.serializeA(writer, null, childUri, childTitle);
            writer.endTag(HtmlElem.DT);
            final boolean isTemplate = childPath.matches(".*(\\{[^\\}]+\\}.*)+");
            final String childDescription = childPageInfo.getDescription();
            if (childDescription != null || isTemplate) {
                writer.startTag(HtmlElem.DD);
                if (childDescription != null) {
                    writer.element(HtmlElem.P, childDescription);
                }
                if (isTemplate) {
                    writer.startTag(HtmlElem.FORM);
                    writer.attribute(HtmlAttr.ACTION, childUri);
                    writer.attribute(HtmlAttr.METHOD, "get");
                    for (final String pathElement : childPath.split("/")) {
                        if (pathElement.matches("\\{[^\\}]+\\}")) {
                            final String name = pathElement.substring(1, pathElement.length() - 1);
                            HtmlUtil.serializeTextInput(writer, name, name, 20, 255);
                        }
                    }
                    HtmlUtil.serializeButtonInput(writer, "go", "doGet(this.form)");
                    writer.endTag(HtmlElem.FORM);
                }
                writer.endTag(HtmlElem.DD);
            }
        }
        writer.endTag(HtmlElem.DL);
        writer.endTag(HtmlElem.DIV);
    }
    writer.endTag(HtmlElem.DIV);
    writer.endDocument();
    writer.close();
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) DocInfo(com.revolsys.ui.model.DocInfo) PageInfo(com.revolsys.ui.model.PageInfo) Entry(java.util.Map.Entry) Element(com.revolsys.ui.html.view.Element) HashMap(java.util.HashMap) Map(java.util.Map) XmlWriter(com.revolsys.record.io.format.xml.XmlWriter)

Example 7 with XmlWriter

use of com.revolsys.record.io.format.xml.XmlWriter in project com.revolsys.open by revolsys.

the class Element method serialize.

public final void serialize(final Writer out, final boolean useNamespaces) {
    final XmlWriter xmlOut = new XmlWriter(out, useNamespaces);
    xmlOut.flush();
    serialize(xmlOut);
    xmlOut.flush();
}
Also used : XmlWriter(com.revolsys.record.io.format.xml.XmlWriter)

Example 8 with XmlWriter

use of com.revolsys.record.io.format.xml.XmlWriter in project com.revolsys.open by revolsys.

the class FormTag method doEndTag.

@Override
public int doEndTag() throws JspException {
    try {
        if (this.name != null) {
            if (this.form != null) {
                final Writer out = this.pageContext.getOut();
                out.flush();
                final XmlWriter xmlOut = new XmlWriter(out);
                this.form.serializeStartTag(xmlOut);
                this.bodyContent.writeOut(xmlOut);
                this.form.serializeEndTag(xmlOut);
                xmlOut.flush();
            }
            this.request.setAttribute("form", this.oldFormAttribute);
        }
        return EVAL_PAGE;
    } catch (final Throwable t) {
        throw new JspException(t.getMessage(), t);
    }
}
Also used : JspException(javax.servlet.jsp.JspException) Writer(java.io.Writer) XmlWriter(com.revolsys.record.io.format.xml.XmlWriter) XmlWriter(com.revolsys.record.io.format.xml.XmlWriter)

Aggregations

XmlWriter (com.revolsys.record.io.format.xml.XmlWriter)8 FileWriter (java.io.FileWriter)2 DataType (com.revolsys.datatype.DataType)1 GeometryFactory (com.revolsys.geometry.model.GeometryFactory)1 FieldDefinition (com.revolsys.record.schema.FieldDefinition)1 Element (com.revolsys.ui.html.view.Element)1 DocInfo (com.revolsys.ui.model.DocInfo)1 Menu (com.revolsys.ui.model.Menu)1 PageInfo (com.revolsys.ui.model.PageInfo)1 JexlHttpServletRequestContext (com.revolsys.ui.web.config.JexlHttpServletRequestContext)1 File (java.io.File)1 IOException (java.io.IOException)1 OutputStream (java.io.OutputStream)1 StringWriter (java.io.StringWriter)1 Writer (java.io.Writer)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 Entry (java.util.Map.Entry)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1