Changeset 31:9f653697437e in AnnotationManagerN4J for src


Ignore:
Timestamp:
Sep 25, 2012, 7:47:58 PM (12 years ago)
Author:
dwinter
Branch:
default
Message:

annotationbrowser

Location:
src/main
Files:
4 added
9 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/de/mpiwg/itgroup/annotations/neo4j/AnnotationStore.java

    r29 r31  
    8585    }
    8686
     87   
     88   
    8789    public List<Actor> getActors(String key, String query, NodeTypes type) {
    8890        ArrayList<Actor> actors = new ArrayList<Actor>();
     
    123125    }
    124126   
     127   
     128    /**
     129     * Returns List of Annotations.
     130     * Key has to be indexed.
     131     *
     132     * @param key
     133     * @param query
     134     * @return
     135     */
     136    public List<Annotation> getAnnotations(String key, String query) {
     137        ArrayList<Annotation> annotations = new ArrayList<Annotation>();
     138        Index<Node> idx = getNodeIndex(NodeTypes.ANNOTATION);
     139        if (key == null) {
     140            key = "id";
     141            query = "*";
     142        }
     143        IndexHits<Node> annotNodes = idx.query(key, query);
     144        for (Node annotNode : annotNodes) {
     145            Annotation annotation = createAnnotationFromNode(annotNode);
     146            annotations.add(annotation);
     147        }
     148        return annotations;
     149    }
     150
     151 
    125152   
    126153    /**
  • src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorAnnotations.java

    r22 r31  
    66
    77import java.io.IOException;
    8 
     8import java.util.ArrayList;
     9import java.util.List;
     10
     11import org.json.JSONArray;
    912import org.json.JSONException;
    1013import org.json.JSONObject;
     14import org.restlet.data.Form;
     15import org.restlet.data.Parameter;
    1116import org.restlet.data.Status;
    1217import org.restlet.ext.json.JsonRepresentation;
     
    1924import de.mpiwg.itgroup.annotations.Annotation;
    2025import de.mpiwg.itgroup.annotations.Person;
     26import de.mpiwg.itgroup.annotations.Tag;
    2127import de.mpiwg.itgroup.annotations.neo4j.AnnotationStore;
     28import de.mpiwg.itgroup.annotations.restlet.utils.JSONObjectComparator;
    2229
    2330/**
     
    5057
    5158        if (id == null) {
    52             // TODO: what to return without id - list all annotations?
    53             setStatus(Status.CLIENT_ERROR_BAD_REQUEST);
    54             return null;
     59           
     60            return getAllAnnotations();
    5561        }
    5662
     
    7783    }
    7884
    79     /**
     85    private Representation getAllAnnotations() {
     86       
     87         Form form = getRequest().getResourceRef().getQueryAsForm();
     88           String sortBy=null;
     89           for (Parameter parameter : form) {
     90             if (parameter.getName().equals("sortBy")){
     91             sortBy =  parameter.getValue();
     92             }
     93           }
     94       
     95        AnnotationStore store = getAnnotationStore();
     96        ArrayList<JSONObject> results = new ArrayList<JSONObject>();
     97       
     98        List<Annotation> annotations = store.getAnnotations(null, null);
     99        for (Annotation annotation : annotations) {
     100               
     101                 JSONObject jo = createAnnotatorJson(annotation,false);
     102             results.add(jo);
     103           
     104            }
     105       
     106        if (sortBy!=null){
     107                JSONObjectComparator.sortAnnotations(results,sortBy);
     108        }
     109       
     110        JSONArray resultsJa = new JSONArray();
     111        for (JSONObject result:results){
     112                resultsJa.put(result);
     113        }
     114       
     115        // assemble result object
     116        JSONObject result = new JSONObject();
     117        try {
     118            result.put("rows", resultsJa);
     119            result.put("total", resultsJa.length());
     120        } catch (JSONException e) {
     121            setStatus(Status.SERVER_ERROR_INTERNAL, "JSON Error");
     122            return null;
     123        }
     124        logger.debug("sending:");
     125        logger.debug(result);
     126        return new JsonRepresentation(result);
     127    }
     128
     129       
     130       
     131       
     132
     133        /**
    80134     * POST with JSON content-type. Creates a new Annotation.
    81135     *
  • src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorAnnotationsByTags.java

    r28 r31  
    6565   
    6666        if (sortBy!=null){
    67                 sortAnnotations(results,sortBy);
     67                JSONObjectComparator.sortAnnotations(results,sortBy);
    6868        }
    6969               
     
    8888
    8989   
    90         /**
    91          * Sortiere array nach einem Parameter in den Annotationen
    92          * @param results
    93          * @return
    94          */
    95         private void sortAnnotations(List<JSONObject> results,String attribute) {
    96                 JSONObjectComparator comp = new JSONObjectComparator(attribute);
    97                
    98                
    9990       
    100                 java.util.Collections.sort( results, comp);
    101                
    102                
    103 
    104         }               
    10591}
  • src/main/java/de/mpiwg/itgroup/annotations/restlet/annotations_ui/AnnotationsUiRestlet.java

    r23 r31  
    4242        router.attach("/groups/{id}/", GroupResource.class);
    4343        router.attach("/groups/{id}/members", GroupMembersResource.class);
    44 
     44             
    4545        router.attach("/", InfoResource.class);
    4646        // authenticator.setNext(router);
  • src/main/java/de/mpiwg/itgroup/annotations/restlet/utils/JSONObjectComparator.java

    r28 r31  
    22
    33import java.util.Comparator;
     4import java.util.List;
    45
    56import de.mpiwg.itgroup.annotations.Annotation;
     
    3435    }
    3536       
    36  
     37        /**
     38         * Sortiere array nach einem Parameter in den Annotationen
     39         * @param results
     40         * @return
     41         */
     42        public static void sortAnnotations(List<JSONObject> results,String attribute) {
     43                JSONObjectComparator comp = new JSONObjectComparator(attribute);
     44               
     45               
     46       
     47                java.util.Collections.sort( results, comp);
     48               
     49               
     50
     51        }       
    3752       
    3853}
  • src/main/webapp/index.html

    r22 r31  
    1414        <ul>
    1515                <li><a href="groups">View and edit groups</a></li>
     16                <li><a href="tags">Browse by Tags</a></li>
     17                <li><a href="annotationBrowser">All Annotations</a></li>
     18               
    1619        </ul>
    1720</body>
  • src/main/webapp/tags/css/tag.css

    r30 r31  
    2121display:table-cell;
    2222padding-left:20px;
     23padding-bottom:10px;
    2324}
    2425.dcMetaData {
    2526display:table-row;
    2627}
     28
     29.annotatonMetaData{
     30padding-bottom:30px;
     31}
  • src/main/webapp/tags/index.html

    r30 r31  
    33<head>
    44<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    5 <title>Browser By Tags</title>
     5<title>Browse By Tags</title>
    66<script type="text/javascript" src="./js/jquery-1.8.2.min.js"></script>
    77<script type="text/javascript" src="./js/tag.js"></script>
  • src/main/webapp/tags/js/tag.js

    r30 r31  
    1 var annotServer="http://localhost:8280/AnnotationManagerN4J/annotator/";
     1//var annotServer="http://localhost:8280/AnnotationManagerN4J/annotator/";
     2var annotServer="http://tuxserve03.mpiwg-berlin.mpg.de/AnnotationManager/annotator/";
    23var viewerAddress="http://libcoll.mpiwg-berlin.mpg.de/libviewa?url=";
    34var docNamespace="http://echo.mpiwg-berlin.mpg.de/documents/";
Note: See TracChangeset for help on using the changeset viewer.