Wiki source code of Clazzes.org Sketch Home
Version 5.1 by christoph_lechleitner@iteg_at on 2013-02-02 06.08:35
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
4.1 | 1 | Clazzes.org Sketch is a framework which provides 2D Vector Graphics for web applications. The project provides PDF-compatible shapes with double-precision coordinates and a HTML5 user frontend which works in all modern browsers, using Google Web Toolkit (GWT). It includes a //Scientific Shapes// component for rendering charts and tables of large data-sets. |
| |
1.1 | 2 | |
| |
4.1 | 3 | All aspects of the project are highly modular and OSGi compliant, making it possible to only include only selected shapes and/or capabilities. |
| |
1.1 | 4 | |
| |
4.1 | 5 | = {{id name="Clazzes.orgSketchHome-Architecture"/}}Architecture = |
| |
2.1 | 6 | |
| |
4.1 | 7 | Due to the great modularity, clazzes.org Sketch relies on [[Maven>>url:http://maven.apache.org/||shape="rect"]] for the build process. It is not advisable to attempt to build it without. |
| |
1.1 | 8 | |
| |
4.1 | 9 | The framework consists of 3 major components: |
| |
3.1 | 10 | |
| |
4.1 | 11 | * Server-side data-object abstraction with de-/serialization capabilities to JSON and XML |
| 12 | * PDF rendering components | ||
| 13 | * A browser-based GUI frontend using GWT, which provides full drawing capabilites. | ||
| |
3.1 | 14 | |
| |
4.1 | 15 | Each of these provides one Maven parent project (ending in {{code language="none"}}-main{{/code}}) and four basic modules: |
| |
3.1 | 16 | |
| |
4.1 | 17 | * {{code language="none"}}serializable-entities{{/code}} provides basic entities needed for depicting the graphics, like drawing, layer, stroke-, fill- and colour-palettes, etc. |
| 18 | * {{code language="none"}}richtext{{/code}} provides an abstraction of basic formatted text | ||
| 19 | * {{code language="none"}}shapes{{/code}} provides basic geometric shapes like rectangles, ellipses, lines etc. | ||
| 20 | * {{code language="none"}}scientific-shapes{{/code}} provides charts and tables for representing data from external providers | ||
| 21 | |||
| 22 | {{code language="none"}}shapes{{/code}} and {{code language="none"}}scientific-shapes{{/code}} depend on {{code language="none"}}serializable-entities{{/code}}, but are independent of each other. | ||
| 23 | |||
| 24 | === {{id name="Clazzes.orgSketchHome-Server-sideModules"/}}Server-side Modules === | ||
| 25 | |||
| 26 | Server-side modules provide a data-model, and serializers for JSON (to communicate with the web front-end) and XML (for storage). The XML format is defined by modular schema files, which are also provided at the following URLs: | ||
| 27 | |||
| 28 | {{code language="none"}} | ||
| 29 | http://www.clazzes.org/sketch/entities/1v0/entities.xsd | ||
| 30 | http://www.clazzes.org/sketch/richtext/1v0/richtext.xsd | ||
| 31 | http://www.clazzes.org/sketch/shapes/1v0/shapes.xsd | ||
| 32 | http://www.clazzes.org/sketch/scientific/1v0/scientificshapes.xsd | ||
| 33 | {{/code}} | ||
| 34 | |||
| 35 | The format of the JSON serialization strings largely follows the schema definitions. | ||
| 36 | |||
| 37 | PDF-generation modules are by definition also server-side, as they rely on the data model. They produce standards-compliant PDF files using apache [[PDFbox>>url:http://pdfbox.apache.org/||shape="rect"]]. | ||
| 38 | |||
| 39 | === {{id name="Clazzes.orgSketchHome-ClientModules"/}}Client Modules === | ||
| 40 | |||
| 41 | The client modules provide a slightly adapted data model with JavaScript objects, using GWTs possiblities to include native JavaScript. Client-side modules provide two distinct packages per server-sided module: one containing pure data-model and de-/serialization components, and another for user-interface widgets/interactive components (ending on {{code language="none"}}-canvas{{/code}}). | ||
| 42 | |||
| 43 | The user interface utilizes a html5 canvas to depict the scenery, while retaining information about the position of each object for interaction. | ||
| 44 | |||
| |
5.1 | 45 | = {{id name="Clazzes.orgSketchHome-Feedbackandcontribution"/}}Feedback and contribution = |
| |
4.1 | 46 | |
| 47 | At the moment, available documentation is still rather sparse, but the classes are well documented. If you want to give it a try, you can check out the components at the following SVN repositories: | ||
| 48 | |||
| |
5.1 | 49 | (% style="list-style-type: square;" %) |
| 50 | * [[http:~~/~~/svn.clazzes.org/svn/sketch/trunk/main>>url:http://svn.clazzes.org/svn/sketch/trunk/main||shape="rect"]] (Core) | ||
| 51 | * (% style="font-size: 10.0pt;line-height: 13.0pt;" %)[[http:~~/~~/svn.clazzes.org/svn/sketch/trunk/pdf>>url:http://svn.clazzes.org/svn/sketch/trunk/pdf||shape="rect"]] (drawing to PDF files) | ||
| 52 | * [[http:~~/~~/svn.clazzes.org/svn/sketch/trunk/gwt>>url:http://svn.clazzes.org/svn/sketch/trunk/gwt||shape="rect"]] (drawing in GWT based web applications) | ||
| 53 | |||
| 54 | The JIRA projects are: | ||
| 55 | |||
| 56 | (% style="list-style-type: square;" %) | ||
| 57 | * [[https:~~/~~/jira.clazzes.org/browse/SKETCH>>url:https://jira.clazzes.org/browse/SKETCH||shape="rect"]] (Core) | ||
| 58 | * [[https:~~/~~/jira.clazzes.org/browse/PDFSKETCH>>url:https://jira.clazzes.org/browse/PDFSKETCH||shape="rect"]] ((% style="font-size: 10.0pt;line-height: 13.0pt;" %)drawing to PDF files) | ||
| 59 | * [[https:~~/~~/jira.clazzes.org/browse/GWTSKETCH>>url:https://jira.clazzes.org/browse/GWTSKETCH||shape="rect"]] (drawing in GWT based web applications) | ||
| 60 | * [[https:~~/~~/jira.clazzes.org/browse/LABELENT>>url:https://jira.clazzes.org/browse/LABELENT||shape="rect"]] (Creating labels, like address labels) | ||
| 61 | |||
| 62 |