Collaborative Drawing

Last modified by Vincent Massol on 2024/02/26 17:55

 XWiki
 Requirements
 Dropped
 

Description

In this page i'll display all the information about my Google Summer of Code 2008 project, the Collaborative Business Drawing plugin

Svg content:

This application will use svg(http://www.w3.org/Graphics/SVG) syntax in order to draw the various objects and therefore we have to found a way to store and edit this information.

Currently we have two implementation options to perform this task, the Object approach and the Attachment approach, and are trying to decide which one is the better, so, in order to perform that i've prepared a few mockups.

To clarify the intent of these approachs, it's good to keep in mind that a drawing has various edition modes and privileges.More specifically, we should have 3 user modes:
  • Administrator: In administrator mode the drawing content will be presented by the SVG editor and the user can:
    • Edit the drawing
    • Add or remove users
    • Modify the drawing name and description
  • Editor: In the editor mode the drawing content will also be presented by the SVG editor but the user can only edit the drawing content.
  • Viewer: In the viewer mode the drawing will be presented as .png file using the Batik plugin and therefore the user only has rights to view the drawing.

The object approach:

In this perspective, the SVG content would be saved on a SVG object with the following properties: http://dl.getdropbox.com/u/47956/XWiki_SVG_Object_Description.pdf , this SVG object would be available in the page, could be accessed by the getContent() method and edited with a simple saveContent() call.

In order to store the privileges and the creation date the current page should be used and to show that here's example:

XWikipagerightsmanagement.png

Here's a example of the view mode:

SVGObjectviewmode.png

And finally here's a edition mode example:

SVGObjecteditor.png

The attachment approach:

In this approach, the SVG content will be stored on a attachment and so all the edition operations would be saved on it as new versions. It's identical to the object approach except in the fact that the svg content wouldn't be in the page itself(we still would need a reference to the attachment on it).
When a user want's to go to edition mode, in this approach a full-screen editor will be launched like the next one:

SVGObjectfulllscreenedit.pngand all the document properties would have to be stored on the attachment.
Note: Obviously the full screen mode can be used in both approaches and the examples shown are possible desings for the UI which in the future will be discussed.


 

Tags: gsoc
    

Get Connected