Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoberto E. Escobar2014-11-05 19:56:47 +0000
committerRoberto E. Escobar2014-11-05 19:56:59 +0000
commitb16883a7130f13f1eb75dd9d2576470d6a613aee (patch)
treeeff6c2d2c5ce92f81570e5d0468263dfac97508c /plugins/org.eclipse.osee.jaxrs.server
parentbfa253f40a9465ce9729e1196fefc9493256d0d9 (diff)
downloadorg.eclipse.osee-b16883a7130f13f1eb75dd9d2576470d6a613aee.tar.gz
org.eclipse.osee-b16883a7130f13f1eb75dd9d2576470d6a613aee.tar.xz
org.eclipse.osee-b16883a7130f13f1eb75dd9d2576470d6a613aee.zip
refinment: Provide fallback html view
Diffstat (limited to 'plugins/org.eclipse.osee.jaxrs.server')
-rw-r--r--plugins/org.eclipse.osee.jaxrs.server/src/org/eclipse/osee/jaxrs/server/internal/resources/AbstractHtmlWriter.java43
1 files changed, 42 insertions, 1 deletions
diff --git a/plugins/org.eclipse.osee.jaxrs.server/src/org/eclipse/osee/jaxrs/server/internal/resources/AbstractHtmlWriter.java b/plugins/org.eclipse.osee.jaxrs.server/src/org/eclipse/osee/jaxrs/server/internal/resources/AbstractHtmlWriter.java
index 18c2d5b90c7..1f39f2b9242 100644
--- a/plugins/org.eclipse.osee.jaxrs.server/src/org/eclipse/osee/jaxrs/server/internal/resources/AbstractHtmlWriter.java
+++ b/plugins/org.eclipse.osee.jaxrs.server/src/org/eclipse/osee/jaxrs/server/internal/resources/AbstractHtmlWriter.java
@@ -12,9 +12,13 @@ package org.eclipse.osee.jaxrs.server.internal.resources;
import java.io.IOException;
import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.Collection;
+import java.util.Map;
+import java.util.Map.Entry;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
@@ -44,9 +48,46 @@ public abstract class AbstractHtmlWriter<T> extends AbstractMessageBodyWriter<T>
ViewModel model = asViewModel(data);
MessageBodyWriter<ViewModel> writer =
providers.getMessageBodyWriter(ViewModel.class, genericType, annotations, mediaType);
- writer.writeTo(model, ViewModel.class, genericType, annotations, mediaType, httpHeaders, entityStream);
+ if (writer != null) {
+ writer.writeTo(model, ViewModel.class, genericType, annotations, mediaType, httpHeaders, entityStream);
+ } else {
+ writeHtml(model, entityStream);
+ }
}
public abstract ViewModel asViewModel(T data);
+ /**
+ * Fall-back HTML - used when templating system is not initialized.
+ */
+ private void writeHtml(ViewModel model, OutputStream output) throws IOException {
+ Writer writer = new OutputStreamWriter(output);
+ Map<String, Object> asMap = model.asMap();
+ writer.write("<!DOCTYPE HTML>");
+ writer.write("<html lang=\"en\"><head><link rel=\"stylesheet\" href=\"/lib/css/bootstrap.min.css\">");
+ writer.write("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"></meta>");
+ writer.write("<meta charset=\"UTF-8\"></head>");
+ writer.write("<body>");
+ writer.write("<div class=\"container\">");
+ writer.write("<h1>OSEE - ");
+ writer.write(model.getViewId());
+ writer.write("</h1>");
+ writer.write("<div class=\"container\" class=\"panel-body\">");
+ writer.write("<div class=\"lead\">");
+ writer.write("Templating system is not initialized. Using default template.");
+ writer.write("</div>");
+ writer.write("<table class=\"table table-striped\">");
+ writer.write("<thead><tr><th>Key</th><th>Value</th></tr></thead>");
+ writer.write("<tbody>");
+ for (Entry<String, Object> entry : asMap.entrySet()) {
+ writer.write("<tr><td>");
+ writer.write(entry.getKey());
+ writer.write("</td><td>");
+ writer.write(String.valueOf(entry.getValue()));
+ writer.write("</td></tr>");
+ }
+ writer.write("</tbody></table></div></div></body></html>");
+ writer.flush();
+ }
+
}

Back to the top