Miguel,
You are confusing the object approach with the content approach.
With object there would be an XWiki class to store the drawing and a
reference too it would be done using $doc.display("fieldname")
With the content you would put the drwaing code inside a macro element
{svg} for example.
I think you are more describing the content approach.. I think this one
is simpler for now, especially since you already have an {svg} macro
that converts SVG to image.
Ludovic
Miguel Bento wrote:
As some of you know, the collaborative drawing
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:
(
http://dev.xwiki.org/xwiki/bin/download/Design/CollaborativeDrawing/XWikipa…)
Here's a example of the view mode:
(
http://dev.xwiki.org/xwiki/bin/download/Design/CollaborativeDrawing/SVGObje…)
And finally here's a edition mode example:
(
http://dev.xwiki.org/xwiki/bin/download/Design/CollaborativeDrawing/SVGObje…)
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:
(
http://dev.xwiki.org/xwiki/bin/download/Design/CollaborativeDrawing/SVGObje…)
and 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.
(Refer to
http://dev.xwiki.org/xwiki/bin/view/Design/CollaborativeDrawingfor
a better version)
So, WDYT?
Best Regards,
Miguel Bento
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs