Changes between Version 10 and Version 11 of VirtualCollectionRegistry


Ignore:
Timestamp:
08/25/14 15:26:27 (10 years ago)
Author:
Twan Goosen
Comment:

UI

Legend:

Unmodified
Added
Removed
Modified
  • VirtualCollectionRegistry

    v10 v11  
    7575==== JAX-RS REST service ====
    7676
    77 The package ''eu.clarin.cmdi.virtualcollectionregistry.rest'' defines a RESTful web service by means of JAX-RS annotations. It uses Jersey as an implementation and depends on a number of Jersey extensions, primarily injection of beans. Four classes define the following (sub)resources:
     77The package ''eu.clarin.cmdi.virtualcollectionregistry.rest'' defines a RESTful web service by means of JAX-RS annotations. It uses [[https://jersey.java.net/ Jersey]] as an implementation and depends on a number of Jersey extensions, primarily injection of beans. Four classes define the following '''(sub)resources''':
    7878* /virtualcollections (class ''!VirtualCollectionsResource'') allows listing (GET) of published collections and POSTing of new collections
    7979 * /virtualcollections/{id} (class ''!VirtualCollectionResource'') is a subresource that allows GETting, PUTting and DELETEing individual collections
     
    8181* / (class ''!BaseResource'') is a dummy resource that renders an informative HTML page (if content negotiation allows) about the service
    8282
    83 Two ''!BodyWriter'' classes are implemented and registered, taking care of the rendering of !VirtualCollection object as CMDI or XML/JSON respectively, by means of different methods of the (injected) ''!VirtualCollectionMarshaller'' service. This way, a single method in ''!VirtualCollectionResource'' can handle these various rendering options (depending on the HTTP Accept header in the client request). An additional method handles requests accepting HTML by returning a redirect ('see other') response pointing to the collection details page of the Wicket UI.
     83Two ''!BodyWriter'' classes are implemented and registered, taking care of the '''rendering''' of !VirtualCollection object as CMDI or XML/JSON respectively, by means of different methods of the (injected) ''!VirtualCollectionMarshaller'' service. This way, a single method in ''!VirtualCollectionResource'' can handle these various serialisation options (depending on the HTTP Accept header in the client request). An additional method handles requests accepting HTML by returning a redirect ('see other') response pointing to the collection details page of the Wicket UI.
    8484
    8585More info:
     
    8989==== Wicket application (UI) ====
    9090
     91The graphical user interface is implemented as a [http://wicket.apache.org Wicket] (version 1.4) web application, which can be found in ''eu.clarin.cmdi.virtualcollectionregistry.gui'' and subpackages. The ''Application'' class is the entry point to the application, and is registered as a bean that gets picked up by the ''!SpringWebApplicationFactory'' defined in the ''web.xml''. Each '''page''' is defined by a tuple consisting of a class and '''HTML template''' of the same name (minus extension). Most pages consist of '''components''', many of which are custom to the VCR and are also defined by a class and HTML template. Each page and component typically represents a ''model''; the VCR has a number of custom Wicket component model implementations in the ''gui'' package. All pages extend a ''!BasePage'', which defines the '''common layout''' (header, footer including some common components).
     92
     93The VCR user interface makes quite intensive use of '''Javascript'''. First of all, it uses Wicket's out-of-the-box functionalities for partial updates via AJAX. In addition, [http://jquery.com/ JQuery] is used for enhanced client side interaction. There is some custom JQuery based code, which is integrated with the Wicket components using the [https://code.google.com/p/wiquery/ WiQuery] library. The base page includes the [http://getbootstrap.com/ Bootstrap] Javascript library to support some out-of-the-box layout niceness.
     94
     95The '''style''' of the UI is defined by a combination of Bootstrap CSS classes (like the Javascript, the style is included in the base page) and a number of .scss ([http://sass-lang.com/ SASS]) files that get compiled to CSS at build time. The main file is [/VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/webapp/css/vcr.scss vcr.scss], which include the base [[CLARIN style]] and includes a number of VCR-specific style definitions.
     96
     97More info:
     98* [https://github.com/Jasig/sass-maven-plugin SASS Maven Plugin]
     99
    91100==== OAI provider ====
    92101
    93102=== Deployment ===
     103
     104web.xml variations
     105
     106build profiles
     107
     108deployment package
    94109
    95110== Tickets ==