Return-Path: Delivered-To: apmail-cocoon-dev-archive@www.apache.org Received: (qmail 93364 invoked from network); 3 Nov 2004 18:22:04 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 3 Nov 2004 18:22:04 -0000 Received: (qmail 319 invoked by uid 500); 3 Nov 2004 18:21:52 -0000 Delivered-To: apmail-cocoon-dev-archive@cocoon.apache.org Received: (qmail 199 invoked by uid 500); 3 Nov 2004 18:21:51 -0000 Mailing-List: contact dev-help@cocoon.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: dev@cocoon.apache.org Delivered-To: mailing list dev@cocoon.apache.org Received: (qmail 186 invoked by uid 99); 3 Nov 2004 18:21:51 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: neutral (hermes.apache.org: local policy) Received: from [213.228.0.62] (HELO postfix4-1.free.fr) (213.228.0.62) by apache.org (qpsmtpd/0.28) with ESMTP; Wed, 03 Nov 2004 10:21:51 -0800 Received: from [192.168.0.100] (lns-vlq-39f-81-56-134-235.adsl.proxad.net [81.56.134.235]) by postfix4-1.free.fr (Postfix) with ESMTP id BCF341F3F8D for ; Wed, 3 Nov 2004 19:21:45 +0100 (CET) Message-ID: <418921B9.1030003@apache.org> Date: Wed, 03 Nov 2004 19:21:45 +0100 From: Sylvain Wallez Organization: Anyware Technologies User-Agent: Mozilla Thunderbird 0.8 (Macintosh/20040913) X-Accept-Language: en-us, en MIME-Version: 1.0 To: dev@cocoon.apache.org Subject: Re: CForms work to do before marking it stable References: <416E4C38.40202@apache.org> <41891753.8080702@apache.org> In-Reply-To: <41891753.8080702@apache.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Reinhard Poetz wrote: > Sylvain Wallez wrote: > >> Hi all, >> >> Here's the result of the discussion at the GT about the work needed >> for CForms to reach stable state. Thanks to Pier for being the >> secretary. He did it so well ;-P >> >> Flowscript integration: >> - don't use JS wrapping classes for widgets: they introduce >> yet-another-API which is sometimes confusing. >> - update the widgets' java public API so that it's more >> "Rhino-friendly" (check JavaBean conformance and add accessors where >> needed) >> - implement an equivalent to the bookmark feature of V2, by a >> function property of the form that gets called at each request roundtrip >> - add helper methods to the Form class to create event listeners from >> JS functions >> - restrict the "cocoon" object that's available in the event handlers >> so that it does not provide response-related methods (sendPage etc) >> >> Java code: >> - ignore the "action-command" attribute which is currently useless >> except for repeater-actions and row-actions >> - implement widget states (a patch has been provided for this which I >> will take care of) >> >> Misc: >> - write a form definition schema so that definitions can be >> optionally validated. >> - flatten the CForm-related component in cocoon.xconf. This will ease >> the transition to a non-Avalon container >> >> >> There was also a discussion also after my presentation on union & >> class about renaming these widgets to something more meaningful to >> people having no C knowledge. The renaming we came up to is as follows: >> - --> >> - --> >> - --> >> - --> >> - --> >> >> The renaming of class/new to macro/expand is mandated by the fact >> that a inlines the contents of the class definition without >> an enclosing container. >> >> Sylvain > > > > What's the status of the binding framework? Found these mails from > march: http://marc.theaimsgroup.com/?t=108059916300004&r=1&w=2 > > At least, on-delete-bean is missing, isn't it? Maybe :-) (I'll have to look at this in deeper detail) About the repeater binding, I had an simple idea that could tremendously simplify the binding job: a repeater could have a row creation counter, each row holding it's own counter value. Upon load, rows would be numbered e.g. 1, 2, 3, 4. On save, if we find e.g. rows 4, 1, 5, 13, we can determine that rows 4&1 were moved, rows 2&3 deleted and rows 5&13 are new. That may avoid that complicated (and difficult to understand) unique-id stuff that is currently needed in the repeater binding. Another option to ease repeater binding could be to attach the loaded data as attributes in the widget row, thus giving instant access to that data at save time. And if some rows don't have that attribute, we know that these are new ones. WDYT? Sylvain -- Sylvain Wallez Anyware Technologies http://www.apache.org/~sylvain http://www.anyware-tech.com { XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }