Mercurial > hg > AnnotationManagerN4J
diff src/main/java/de/mpiwg/itgroup/annotations/restlet/annotations_ui/AnnotationsResource.java @ 50:64aa756c60cc
annotations ui can show and delete annotations now.
author | casties |
---|---|
date | Thu, 27 Sep 2012 17:12:08 +0200 |
parents | |
children | 2b1e6df5e21a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/itgroup/annotations/restlet/annotations_ui/AnnotationsResource.java Thu Sep 27 17:12:08 2012 +0200 @@ -0,0 +1,67 @@ +/** + * + */ +package de.mpiwg.itgroup.annotations.restlet.annotations_ui; + +import java.util.List; + +import org.apache.log4j.Logger; +import org.restlet.data.MediaType; +import org.restlet.data.Reference; +import org.restlet.representation.Representation; +import org.restlet.representation.StringRepresentation; +import org.restlet.resource.Get; +import org.restlet.resource.ResourceException; +import org.restlet.resource.ServerResource; + +import de.mpiwg.itgroup.annotations.Annotation; +import de.mpiwg.itgroup.annotations.neo4j.AnnotationStore; +import de.mpiwg.itgroup.annotations.restlet.BaseRestlet; + +/** + * Resource class for the list of annotations. + * + * @author casties + * + */ +public class AnnotationsResource extends ServerResource { + + public static Logger logger = Logger.getLogger(AnnotationsResource.class); + + private AnnotationStore store; + + @Override + protected void doInit() throws ResourceException { + super.doInit(); + // get store instance + if (store == null) { + store = ((BaseRestlet) getApplication()).getAnnotationStore(); + } + } + + /** + * GET with HTML content type. Lists all annotations. + * + * @param entity + * @return + */ + @Get("html") + public Representation doGetHTML(Representation entity) { + String result = null; + // list all annotations + result = "<html><body>\n<h1>Annotations</h1>\n<table>"; + result += "<tr><th>uri</th><th>text</th><th>target</th><th>fragment</th><th>creator</th></tr>"; + List<Annotation> annotations = store.getAnnotations("id", "*"); + for (Annotation annotation : annotations) { + Reference url = this.getReference().clone(); + url.addSegment(annotation.getUrlId()); + result += String.format("<tr><td><a href=\"%s\">%s</a></td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n", url, + annotation.getUri(), annotation.getBodyText(), annotation.getTargetBaseUri(), annotation.getTargetFragment(), + annotation.getCreatorName()); + } + result += "</table>\n"; + result += "</body>\n</html>"; + return new StringRepresentation(result, MediaType.TEXT_HTML); + } + +}