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();
}
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();
}
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);
}
}
Aggregations