Changeset 32:0731c4549065 in AnnotationManagerN4J for src/main/java/de/mpiwg/itgroup/annotations/restlet
- Timestamp:
- Sep 25, 2012, 7:59:21 PM (12 years ago)
- Branch:
- default
- Location:
- src/main/java/de/mpiwg/itgroup/annotations/restlet
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorAnnotations.java
r22 r32 222 222 223 223 // delete annotation 224 store.delete ById(id);224 store.deleteAnnotationById(id); 225 225 setStatus(Status.SUCCESS_NO_CONTENT); 226 226 return null; -
src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorSearch.java
r15 r32 57 57 logger.debug(String.format("searching for uri=%s user=%s", uri, user)); 58 58 AnnotationStore store = getAnnotationStore(); 59 List<Annotation> annots = store.search ByUriUser(uri, user, limit, offset);59 List<Annotation> annots = store.searchAnnotationByUriUser(uri, user, limit, offset); 60 60 for (Annotation annot : annots) { 61 61 // check permission -
src/main/java/de/mpiwg/itgroup/annotations/restlet/annotations_ui/AnnotationsUiRestlet.java
r23 r32 17 17 public class AnnotationsUiRestlet extends BaseRestlet { 18 18 19 public final String version = "AnnotationManagerN4J/Annotation Store 0.1";19 public final String version = "AnnotationManagerN4J/AnnotationsUI 0.2"; 20 20 21 21 public static Logger logger = Logger.getLogger(AnnotationsUiRestlet.class); … … 42 42 router.attach("/groups/{id}/", GroupResource.class); 43 43 router.attach("/groups/{id}/members", GroupMembersResource.class); 44 router.attach("/persons", PersonsResource.class); 45 router.attach("/persons/", PersonsResource.class); 46 router.attach("/persons/{id}", PersonResource.class); 47 router.attach("/persons/{id}/", PersonResource.class); 44 48 45 49 router.attach("/", InfoResource.class); -
src/main/java/de/mpiwg/itgroup/annotations/restlet/annotations_ui/GroupResource.java
r24 r32 5 5 6 6 import org.apache.log4j.Logger; 7 import org.restlet.data.Form; 7 8 import org.restlet.data.MediaType; 8 9 import org.restlet.data.Reference; … … 10 11 import org.restlet.representation.Representation; 11 12 import org.restlet.representation.StringRepresentation; 13 import org.restlet.resource.Delete; 12 14 import org.restlet.resource.Get; 15 import org.restlet.resource.Put; 13 16 import org.restlet.resource.ResourceException; 14 17 import org.restlet.resource.ServerResource; … … 29 32 30 33 protected AnnotationStore store; 31 34 32 35 protected String requestId; 33 36 34 37 protected Group group; 35 38 36 39 @Override 37 40 protected void doInit() throws ResourceException { … … 58 61 @Get("html") 59 62 public Representation doGetHTML(Representation entity) { 60 if (requestId == null || requestId.isEmpty()) { 63 if (group == null) { 64 // invalid id 65 setStatus(Status.CLIENT_ERROR_NOT_FOUND); 66 return null; 67 } 68 String result = null; 69 // get form parameter 70 Form f = this.getQuery(); 71 String form = f.getFirstValue("form"); 72 if (form != null && form.equals("edit")) { 73 // output edit form 74 result = "<html><body>\n"; 75 result += String.format("<h1>Edit group %s</h1>\n", group.getId()); 76 result += String.format("<p><a href=\"%s\">All groups</a></p>", this.getReference().getParentRef()); 77 // tunnel PUT method through POST 78 result += String.format("<form method=\"post\" action=\"%s?method=PUT\">\n", this.getReference().getHierarchicalPart()); 79 result += "<table>"; 80 result += String.format("<tr><td><b>name</b></td><td><input type=\"text\" name=\"name\" value=\"%s\"/></td></tr>\n", 81 group.getName()); 82 result += String.format("<tr><td><b>uri</b></td><td><input type=\"text\" name=\"uri\" value=\"%s\"/></td></tr>\n", 83 group.getUriString()); 84 result += "</table>\n"; 85 result += "<p><input type=\"submit\"/></p>"; 86 result += "</table>\n</form>\n</body>\n</html>"; 87 } else { 88 // output group content 89 result = "<html><body>\n<h1>Group</h1>\n"; 90 result += String.format("<p><a href=\"%s\">All groups</a></p>", this.getReference().getParentRef()); 91 result += "<table>"; 92 result += String.format("<tr><td><b>id</b></td><td>%s</td></tr>\n", group.getId()); 93 result += String.format("<tr><td><b>name</b></td><td>%s</td></tr>\n", group.getName()); 94 result += String.format("<tr><td><b>uri</b></td><td>%s</td></tr>\n", group.getUri()); 95 result += String.format("<tr><td><b>members</b></td><td><a href=\"%s\">view members</a></td></tr>\n", this 96 .getReference().addSegment("members")); 97 result += "</table>\n"; 98 result += "<p><a href=\"?form=edit\">Edit group</a></p>\n"; 99 // tunnel POST as DELETE 100 result += String.format( 101 "<form method=\"post\" action=\"%s?method=DELETE\"><input type=\"submit\" value=\"Delete group\"/></form>\n", 102 this.getReference().getHierarchicalPart()); 103 result += "</body>\n</html>"; 104 } 105 return new StringRepresentation(result, MediaType.TEXT_HTML); 106 } 107 108 /** 109 * PUT updates the group. 110 * 111 * @param entity 112 * @return 113 */ 114 @Put 115 public Representation doPut(Representation entity) { 116 logger.debug("GroupResource.doPut!"); 117 if (group == null) { 61 118 // invalid id 62 119 setStatus(Status.CLIENT_ERROR_BAD_REQUEST); 63 120 return null; 64 121 } 65 String result = null; 66 Reference groupsUrl = this.getReference().getParentRef(); 67 result = "<html><body>\n<h1>Group</h1>\n"; 68 result += String.format("<p><a href=\"%s\">All groups</a></p>", groupsUrl); 69 result += "<table>"; 70 result += String.format("<tr><td><b>id</b></td><td>%s</td></tr>\n", group.getId()); 71 result += String.format("<tr><td><b>name</b></td><td>%s</td></tr>\n", group.getName()); 72 result += String.format("<tr><td><b>uri</b></td><td>%s</td></tr>\n", group.getUri()); 73 result += String.format("<tr><td><b>members</b></td><td><a href=\"%s\">view members</a></td></tr>\n", this.getReference() 74 .addSegment("members")); 75 result += "</table>\n</body>\n</html>"; 76 77 logger.debug("sending:"); 78 logger.debug(result); 79 return new StringRepresentation(result, MediaType.TEXT_HTML); 122 // TODO: do authentication 123 Form form = new Form(entity); 124 String name = form.getFirstValue("name"); 125 String uri = form.getFirstValue("uri"); 126 if (name != null && !name.isEmpty()) { 127 group.setName(name); 128 } 129 if (uri != null && !uri.isEmpty()) { 130 group.setUri(uri); 131 } 132 store.storeActor(group); 133 // return 303: see other 134 setStatus(Status.REDIRECTION_SEE_OTHER); 135 // go GET same URL 136 Reference url = this.getReference(); 137 this.getResponse().setLocationRef(url); 138 return null; 80 139 } 81 140 141 /** 142 * DELETE deletes the group. 143 * 144 * @param entity 145 * @return 146 */ 147 @Delete 148 public Representation doDelete(Representation entity) { 149 logger.debug("GroupResource.doDelete!"); 150 if (group == null) { 151 // invalid id 152 setStatus(Status.CLIENT_ERROR_BAD_REQUEST); 153 return null; 154 } 155 // TODO: do authentication 156 store.deleteActor(group); 157 // return 303: see other 158 setStatus(Status.REDIRECTION_SEE_OTHER); 159 // go GET parent URL 160 Reference url = this.getReference().getParentRef(); 161 this.getResponse().setLocationRef(url); 162 return null; 163 } 82 164 } -
src/main/java/de/mpiwg/itgroup/annotations/restlet/annotations_ui/GroupsResource.java
r23 r32 15 15 import org.restlet.resource.Get; 16 16 import org.restlet.resource.Post; 17 import org.restlet.resource.ResourceException; 17 18 import org.restlet.resource.ServerResource; 18 19 … … 34 35 private AnnotationStore store; 35 36 37 @Override 38 protected void doInit() throws ResourceException { 39 super.doInit(); 40 // get store instance 41 if (store == null) { 42 store = ((BaseRestlet) getApplication()).getAnnotationStore(); 43 } 44 } 45 36 46 /** 37 47 * GET with HTML content type. Lists all groups. … … 43 53 public Representation doGetHTML(Representation entity) { 44 54 String result = null; 45 store = getAnnotationStore(); 46 // list all groups 47 result = "<html><body>\n<h1>Groups</h1>\n<table>"; 48 result += "<tr><th>id</th><th>name</th><th>uri</th></tr>"; 49 List<Group> groups = store.getGroups("uri", "*"); 50 for (Group group : groups) { 51 Reference groupUrl = this.getReference(); 52 groupUrl.addSegment(group.getId()); 53 result += String.format("<tr><td><a href=\"%s\">%s</a></td><td>%s</td><td>%s</td></tr>\n", groupUrl, group.getId(), 54 group.getName(), group.getUri()); 55 // get form parameter 56 Form f = this.getQuery(); 57 String form = f.getFirstValue("form"); 58 if (form != null && form.equals("new_group")) { 59 // output new group form 60 result = "<html><body>\n"; 61 result += "<h1>New group</h1>\n"; 62 result += String.format("<p><a href=\"%s\">All groups</a></p>", this.getReference()); 63 result += String.format("<form method=\"post\" action=\"%s\">\n", this.getReference().getHierarchicalPart()); 64 result += "<table>"; 65 result += "<tr><td><b>id</b></td><td><input type=\"text\" name=\"id\"/></td></tr>\n"; 66 result += "<tr><td><b>name</b></td><td><input type=\"text\" name=\"name\"/></td></tr>\n"; 67 result += "</table>\n"; 68 result += "<p><input type=\"submit\"/></p>\n"; 69 result += "</form>\n</body>\n</html>"; 70 } else { 71 // list all groups 72 result = "<html><body>\n<h1>Groups</h1>\n"; 73 result += "<table>\n"; 74 result += "<tr><th>id</th><th>name</th><th>uri</th></tr>"; 75 List<Group> groups = store.getGroups("uri", "*"); 76 for (Group group : groups) { 77 Reference groupUrl = this.getReference().clone(); 78 groupUrl.addSegment(group.getId()); 79 result += String.format("<tr><td><a href=\"%s\">%s</a></td><td>%s</td><td>%s</td></tr>\n", groupUrl, group.getId(), 80 group.getName(), group.getUri()); 81 } 82 result += "</table>\n"; 83 result += "<p><a href=\"?form=new_group\">Add new group</a></p>\n"; 84 result += "</body>\n</html>"; 55 85 } 56 result += "</table>\n</body>\n</html>";57 logger.debug("sending:");58 logger.debug(result);59 86 return new StringRepresentation(result, MediaType.TEXT_HTML); 60 87 } … … 79 106 String gid = makeGroupId(id); 80 107 Group newGroup = new Group(gid, null, name); 81 store = getAnnotationStore();82 108 Actor storedGroup = store.storeActor(newGroup); 83 109 gid = storedGroup.getId();
Note: See TracChangeset
for help on using the changeset viewer.