[GSOC] Collaborative Drawing content

2 Messages Forum Options Options
Permalink
Miguel Bento
[GSOC] Collaborative Drawing content
Reply Threaded More
Print post
Permalink
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/XWikipagerightsmanagement.png?height=400&width=900)

Here's a example of the view mode:

(
http://dev.xwiki.org/xwiki/bin/download/Design/CollaborativeDrawing/SVGObjectviewmode.png?height=628&width=900)

And finally here's a edition mode example:

(
http://dev.xwiki.org/xwiki/bin/download/Design/CollaborativeDrawing/SVGObjecteditor.png?height=683&width=900)


 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/SVGObjectfulllscreenedit.png?height=419&width=901)

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@...
http://lists.xwiki.org/mailman/listinfo/devs
Ludovic Dubost-2
Re: [GSOC] Collaborative Drawing content
Reply Threaded More
Print post
Permalink

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/XWikipagerightsmanagement.png?height=400&width=900)
>
> Here's a example of the view mode:
>
> (
> http://dev.xwiki.org/xwiki/bin/download/Design/CollaborativeDrawing/SVGObjectviewmode.png?height=628&width=900)
>
> And finally here's a edition mode example:
>
> (
> http://dev.xwiki.org/xwiki/bin/download/Design/CollaborativeDrawing/SVGObjecteditor.png?height=683&width=900)
>
>
>  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/SVGObjectfulllscreenedit.png?height=419&width=901)
>
> 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@...
> http://lists.xwiki.org/mailman/listinfo/devs
>
>  


--
Ludovic Dubost
Blog: http://blog.ludovic.org/
XWiki: http://www.xwiki.com
Skype: ldubost GTalk: ldubost

_______________________________________________
devs mailing list
devs@...
http://lists.xwiki.org/mailman/listinfo/devs