[daisy] Saving Hook for a Part Editor
Michael Hänni
michael.haenni at ergon.ch
Thu May 8 13:30:10 CEST 2008
Hello
thank you for the hint for the saving hook. It works perfect.
As a framework I'm using JHotDraw (http://www.jhotdraw.org).
JHotDraw supports different data formats. Apart from an own format it
supports also .svg.
Here is a sample .svg-Applet:
http://www.randelshofer.ch/oop/jhotdraw/guide/Documentation/sample_svg_applet.html
Here is a sample Drawing-Applet:
http://www.randelshofer.ch/oop/jhotdraw/guide/Documentation/sample_draw_applet.html
The prototype part editor for the SvgData part of the SvgDocument is
nearly finished.
As for the JHotDraw format ("Drawing xml") there is a lot more
functionality, I decided to create also an editor for this format. A new
challenge now is to write a serializer similar to the class
org.apache.cocoon.serialization.SVGSerializer to convert these files to
a bitmap image.
I hope that I will be able to have a first version of these two editors
within a week or two.
Regards,
Michael
Bruno Dumon schrieb:
> Hi,
>
> On Wed, 2008-04-30 at 17:40 +0200, Michael Hänni wrote:
>
>> Hello
>>
>> I have implemented a part editor for the Part Type "SvgData" of the
>> document type "SVG document". This editor is an applet running inside a
>> browser.
>> For the ease of use it should be possible for the user to click on the
>> "Save" or "Cancle editing (clears lock)" buttons to save or discharge
>> the edited part of the document. This is how it is done with the
>> document type "Simple Document".
>> To meet this requirement I currently take the data from the applet and
>> write it to a hidden field of the document. This hidden field then gets
>> stored on the server side.
>>
>> What could be a good presave hook for writing the changes of the applet
>> in the "SVG document"?
>> Currently I'm doing this at the end of the function preSubmitChecks() of
>> the file DaisyHome\daisywiki\webapp\daisy\resources\xml\documenteditor.xml.
>> This works fine, but is more a hack than a solution, as the code is
>> executed for every document type, not just for a document containing a
>> "SvgData" part.
>>
>> Has anyone an idea?
>>
>
> The HTML editor and the navigation tree editor are in the same position:
> before the form is submitted, their internal data-structures need to be
> serialized and set as a field value.
>
> For the navigation tree editor, the relevant code is in treeview.js,
> function installTreeEditorOnSubmitHandler. This gets called via the
> initNavTree() call in parteditor_navigation_template.xml.
>
> The approach is basically to execute some code like the following when
> loading your form (just put it in a <script> tag in your template):
>
> var plainTextField = dojo.byId("plaintext:input");
> var htmlAreaSubmitHandler = new Object();
> htmlAreaSubmitHandler.forms_onsubmit = function() {
> plainTextField.value = editorApplet.getData();
> return true;
> }
> cocoon.forms.addOnSubmitHandler(plainTextField.form,
> htmlAreaSubmitHandler);
>
> BTW, what applet are you using? Looking forward to see the results!
>
>
More information about the daisy
mailing list