Re: [CForms] Support for multipe unique-row-id in Repeater
On 12.03.2004 18:29, Marc Portier wrote: You don't have access to the field and its value of the child binding by default. For the repeater you now need the values, otherwise you can not build the identity of a row. yep, you only have a ref to a binding (in the abstract sense) that is there for all of the identity fields hence my proposal: in stead of asking it for internal details it should just be able to reply to some isIdentical(formContext, modelContext) question... But fb:identity is a composed binding that would need to collect the values of its child bindings (fb:value or others, there is also no access to those ATM). just like the load() and save() of this composite binding delegates to it's children, it would need to do so for the isIdentical() do { stillIdentical &&= nextChildBinding.isIdentical() } while(stillIdentical and hasmoreChildBindings) return stillIdentical; by the introduction of the 'identity' as a potential complex binding we have now a third mode of operation of the abstract binding interface: 1/ load 2/ save 3/ check for identity (or equivalence, or valuematch, or whatever name we find most appropriate) this change would mean that each of the bindings would need to implement this mode of operation in order for them to be used as an 'identity' inside the repeater. for most of them I think it's pretty straightforward, for those we can't figure out yet how it should work we could throw a runtime exception which would mean that this type of binding can not be used as an identity mapping... this in combination with the builder, checking it at runtime would be great... hm, this actually calls for a separate interface: IdentityBindingSupport that holds the isIdentical() method... that is even nicer, right? If we don't know how to support it, then we just don't implement the interface the builder then just waits for the identity-binding to be built and checks for an instanceof, downcasts, and hands over to the constructor of the actual repeater (or generates a building-error) making sense? Yes, indeed. If there is nobody faster than me I will also try to get this implemented myself. I will see if I will came across other problems. Yes, I put the blame on jxpath. I'ld like to give those blokes a break, like said earlier in those cases I encountered I'ld have to confess (after giving it appropriate thought) that they just did a very logical thing... it just doesn't manifest itself as logical thing at first... Will the melon fall faster then the apple? (This makes me remember the toy-shop in London where they had the hourglas inside the tube that was waiting a bit first and then going up in stead of down when you turned it... all logic, but still surprising. Some things are just like that I'm afraid... ) :) however, thinking about it constructively I think here and now the best we can do is build some docos/catalogue offering the real XML/jxpath view on some classic bean constructs? Yes, though it would belong more to JXPath itself and should be maintained there. Maybe it already exists. maybe, then we could just provide a link. Ok, I will have a look for that page. Joerg
Re: [CForms] Support for multipe unique-row-id in Repeater
Joerg Heinicke wrote: Marc Portier outerthought.org> writes: I missed the reason to do away with the convertor, or you moved it down to the identity-binding? The convertor was only for @unique-row-id and @unique-path and as I removed these I also removed that. The identity binding itself is just a composed binding. The value bindings do have a convertor themselves. sure, I didn't rehash my mail after starting to see the light, ignore this 2. The repeater binding has to know stuff (fieldId, xpath, convertor, etc.) from its child bindings - and this dependency is bad. IIRC we just duplicated that info during building in order to make sure there would not be added coupling between the repeater and it's possible children and you might as well ignore this Maybe I understand something wrong, but I don't agree with your recall: The handling of @unique-row-id and @unique-path was completely in RepeaterJXPathBindingBuilder [1] and RepeaterJXPathBinding [2]. So the repeater binding did also the work of the ValueJXPathBindingBuilder and so knew all values for latter usage. Nothing was duplicated AFAICS. IIRC, the duplication wqas in the fact that the repeater-binding had its own memory of the unique-row-id and unique-path PLUS is had a reference to a distinct value-binding that was initialised with the same values but again: not relevant now that there is 'identity' for composed keys This is no longer true for the elements. I can get the child bindings from the composed binding, but I had to open (additional getters) the value binding to get the values no longer available to the repeater binding otherwise. afraid I don't understand completely yet You don't have access to the field and its value of the child binding by default. For the repeater you now need the values, otherwise you can not build the identity of a row. yep, you only have a ref to a binding (in the abstract sense) that is there for all of the identity fields hence my proposal: in stead of asking it for internal details it should just be able to reply to some isIdentical(formContext, modelContext) question... All together: there is now a dependency of the repeater binding on its child bindings. We can restrict the allowed child elements of fb:identity to fb:value that reduces the problem to current minimum, but maybe something else is needed. oh, I'm starting to see the light again... damn, I have to check in the maillinglist to see if this was just a personal mental note or a discussed proposal, but in any case: IMHO this calls for an additional method on the binding interface, next to load() and save() we should be able to ask for isMatch() or even better isIdentical() wdyt? But fb:identity is a composed binding that would need to collect the values of its child bindings (fb:value or others, there is also no access to those ATM). just like the load() and save() of this composite binding delegates to it's children, it would need to do so for the isIdentical() do { stillIdentical &&= nextChildBinding.isIdentical() } while(stillIdentical and hasmoreChildBindings) return stillIdentical; by the introduction of the 'identity' as a potential complex binding we have now a third mode of operation of the abstract binding interface: 1/ load 2/ save 3/ check for identity (or equivalence, or valuematch, or whatever name we find most appropriate) this change would mean that each of the bindings would need to implement this mode of operation in order for them to be used as an 'identity' inside the repeater. for most of them I think it's pretty straightforward, for those we can't figure out yet how it should work we could throw a runtime exception which would mean that this type of binding can not be used as an identity mapping... this in combination with the builder, checking it at runtime would be great... hm, this actually calls for a separate interface: IdentityBindingSupport that holds the isIdentical() method... that is even nicer, right? If we don't know how to support it, then we just don't implement the interface the builder then just waits for the identity-binding to be built and checks for an instanceof, downcasts, and hands over to the constructor of the actual repeater (or generates a building-error) making sense? next to this observation however I'ld like to question the real-life relevance: IMHO the advantage of jxpath under the hood of the binding is that it allows for reusing the syntax-metafor of xpath regardless of the backend. Being the mix of using slashes over dots, not needing parentheses and having a single expression that equally works for getting and setting (LHV/RHV) When it would work "regardless of the backend" ... yeah, but currently the regardless only realtes to the syntax being portable over to the backend, not the semantics An important difference indeed :) or in other words: the semantics are imposed onto the backend by jxpath what I want to say is: it D
Re: [CForms] Support for multipe unique-row-id in Repeater
Marc Portier outerthought.org> writes: > I missed the reason to do away with the convertor, or you moved it down > to the identity-binding? The convertor was only for @unique-row-id and @unique-path and as I removed these I also removed that. The identity binding itself is just a composed binding. The value bindings do have a convertor themselves. > > 2. The repeater binding has to know stuff (fieldId, xpath, convertor, > > etc.) from its child bindings - and this dependency is bad. > > IIRC we just duplicated that info during building in order to make sure > there would not be added coupling between the repeater and it's possible > children Maybe I understand something wrong, but I don't agree with your recall: The handling of @unique-row-id and @unique-path was completely in RepeaterJXPathBindingBuilder [1] and RepeaterJXPathBinding [2]. So the repeater binding did also the work of the ValueJXPathBindingBuilder and so knew all values for latter usage. Nothing was duplicated AFAICS. > > This is no longer true for the elements. I can > > get the child bindings from the composed binding, but I had to open > > (additional getters) the value binding to get the values no longer > > available to the repeater binding otherwise. > > afraid I don't understand completely yet You don't have access to the field and its value of the child binding by default. For the repeater you now need the values, otherwise you can not build the identity of a row. > > All together: there is now a dependency of the repeater binding on its > > child bindings. We can restrict the allowed child elements of > > fb:identity to fb:value that reduces the problem to current minimum, but > > maybe something else is needed. > > oh, I'm starting to see the light again... > > damn, I have to check in the maillinglist to see if this was just a > personal mental note or a discussed proposal, but in any case: > > IMHO this calls for an additional method on the binding interface, next > to load() and save() we should be able to ask for isMatch() or even > better isIdentical() > > wdyt? But fb:identity is a composed binding that would need to collect the values of its child bindings (fb:value or others, there is also no access to those ATM). > >> next to this observation however I'ld like to question the real-life > >> relevance: IMHO the advantage of jxpath under the hood of the binding > >> is that it allows for reusing the syntax-metafor of xpath regardless > >> of the backend. Being the mix of using slashes over dots, not needing > >> parentheses and having a single expression that equally works for > >> getting and setting (LHV/RHV) > > > > When it would work "regardless of the backend" ... > > yeah, but currently the regardless only realtes to the syntax being > portable over to the backend, not the semantics An important difference indeed :) > or in other words: the semantics are imposed onto the backend by jxpath > > what I want to say is: it DOES work, but only if the backends are equal > in the jxpath sense of the word Yes, I put the blame on jxpath. > > While developing we often encoupled the backend from the frontend. The > > interface between both was a simple XML structure. The frontend knows > > what it will get, the backend what it has to deliver when the system is > > running. This allows independent development. Additionally we had static > > test XML files for the frontend, so that "real life" test is possible. > > The switching was just in the sitemap (XML from disk or from backend). > > Now I would have to maintain two binding files. > > hm, all falls with the line > 'backend knows what it has to deliver' > > is that *knowing* really according to 'semantics as imposed by jxpath' > and not according to 'most naive/simplistic view of the structure'? It was with Cocoon 2.0 (no JXPath, no beans, no woody) and just an arbitrary complex XML comming either from disk (static file) or XSP (the backend), but this XML structure was the interface. > I could go on questioning if the static XML is a big gain over a static > hard-coded Java that builds some bean instances rather then load them > from the real backend... Indeed, new techniques sometimes need adapted developing. > however, thinking about it constructively I > think here and now the best we can do is build some docos/catalogue > offering the real XML/jxpath view on some classic bean constructs? Yes, though it would belong more to JXPath itself and should be maintained there. Maybe it already exists. Thanks for your reply, Joerg [1] http://cvs.apache.org/viewcvs.cgi/cocoon-2.1/src/blocks/woody/ java/org/apache/cocoon/woody/binding/RepeaterJXPathBindingBuilder.java? annotate=1.12#114 [2] http://cvs.apache.org/viewcvs.cgi/cocoon-2.1/src/blocks/woody/ java/org/apache/cocoon/woody/binding/RepeaterJXPathBinding.java? annotate=1.20#121
Re: [CForms] Support for multipe unique-row-id in Repeater
Joerg Heinicke wrote: On 11.03.2004 17:31, Marc Portier wrote: All together we are at: yep, sounds like the best we have ATM So, I implemented this myself. To be honest, I'm proud of this work. Not this is utter good news only that I got it working, I also had the feeling I know what I'm doing even better :-) :) Ok, it took a while to understand all the things in the code, but now it works. I tested it with the form2 binding samples. Some issues: 1. I removed the old attributes and convertor. I will also add this to the woody2cforms upgrade task. Obviously this must by solved by a stylesheet. I missed the reason to do away with the convertor, or you moved it down to the identity-binding? 2. The repeater binding has to know stuff (fieldId, xpath, convertor, etc.) from its child bindings - and this dependency is bad. With the IIRC we just duplicated that info during building in order to make sure there would not be added coupling between the repeater and it's possible children both attributes all details where known to the repeater binding builder (therefore it implemented the functionality of a second builder) and so to the repeater binding. This is no longer true for the elements. I can get the child bindings from the composed binding, but I had to open (additional getters) the value binding to get the values no longer available to the repeater binding otherwise. afraid I don't understand completely yet This issue goes on: I expect value bindings as child bindings, nothing else (would result in ClassCastException at the moment). I could imagine the use of other bindings here too: the simplest is the context binding, which seems to be absolutely valid, but not working, because there is no chance to get the values from a value binding which is a child of a context binding which is a child of the identity binding. The extreme would be a repeater binding: imagine a list of persons that have a list of biometrical data that constitute the identity of those persons. All together: there is now a dependency of the repeater binding on its child bindings. We can restrict the allowed child elements of fb:identity to fb:value that reduces the problem to current minimum, but maybe something else is needed. oh, I'm starting to see the light again... damn, I have to check in the maillinglist to see if this was just a personal mental note or a discussed proposal, but in any case: IMHO this calls for an additional method on the binding interface, next to load() and save() we should be able to ask for isMatch() or even better isIdentical() wdyt? I read all the threads and use cases. And yes, a unification of the pfew, you are a brave man :-) I need some time to list all changes, proposals, enhancements that were partially discussed but haven't got into code yet That would be interesting. I guess while reading I lost at least half of the stuff ... Also the unification for binding to bean or XML is a one. This ends at the latest with the repeater at the moment as the @parent-path/@row-path is different for beans and XML. hm, I've experienced this myself now and then, but I'm afraid this is out of our league, jxpath imposes an XML way of looking at your java-bean that is sometimes 'surprising': Yes, I know and fear this. what most naturally looks like the standard java version of an xml snippet seems (often due to technical limitations that however logic need some thought to grasp) to be behaving different in the jxpath view next to this observation however I'ld like to question the real-life relevance: IMHO the advantage of jxpath under the hood of the binding is that it allows for reusing the syntax-metafor of xpath regardless of the backend. Being the mix of using slashes over dots, not needing parentheses and having a single expression that equally works for getting and setting (LHV/RHV) When it would work "regardless of the backend" ... yeah, but currently the regardless only realtes to the syntax being portable over to the backend, not the semantics or in other words: the semantics are imposed onto the backend by jxpath what I want to say is: it DOES work, but only if the backends are equal in the jxpath sense of the word :-) I don't see it as a common use case that people during the lifetime would want to switch the backend from XML to JavaBeans (or vice versa) and actually expect to have all binding expressions work 'justlikethat'. While developing we often encoupled the backend from the frontend. The interface between both was a simple XML structure. The frontend knows what it will get, the backend what it has to deliver when the system is running. This allows independent development. Additionally we had static test XML files for the frontend, so that "real life" test is possible. The switching was just in the sitemap (XML from disk or from backend). Now I would have to maintain two binding files
Re: [CForms] Support for multipe unique-row-id in Repeater
On 11.03.2004 17:31, Marc Portier wrote: All together we are at: yep, sounds like the best we have ATM So, I implemented this myself. To be honest, I'm proud of this work. Not only that I got it working, I also had the feeling I know what I'm doing :) Ok, it took a while to understand all the things in the code, but now it works. I tested it with the form2 binding samples. Some issues: 1. I removed the old attributes and convertor. I will also add this to the woody2cforms upgrade task. Obviously this must by solved by a stylesheet. 2. The repeater binding has to know stuff (fieldId, xpath, convertor, etc.) from its child bindings - and this dependency is bad. With the both attributes all details where known to the repeater binding builder (therefore it implemented the functionality of a second builder) and so to the repeater binding. This is no longer true for the elements. I can get the child bindings from the composed binding, but I had to open (additional getters) the value binding to get the values no longer available to the repeater binding otherwise. This issue goes on: I expect value bindings as child bindings, nothing else (would result in ClassCastException at the moment). I could imagine the use of other bindings here too: the simplest is the context binding, which seems to be absolutely valid, but not working, because there is no chance to get the values from a value binding which is a child of a context binding which is a child of the identity binding. The extreme would be a repeater binding: imagine a list of persons that have a list of biometrical data that constitute the identity of those persons. All together: there is now a dependency of the repeater binding on its child bindings. We can restrict the allowed child elements of fb:identity to fb:value that reduces the problem to current minimum, but maybe something else is needed. I read all the threads and use cases. And yes, a unification of the pfew, you are a brave man :-) I need some time to list all changes, proposals, enhancements that were partially discussed but haven't got into code yet That would be interesting. I guess while reading I lost at least half of the stuff ... Also the unification for binding to bean or XML is a one. This ends at the latest with the repeater at the moment as the @parent-path/@row-path is different for beans and XML. hm, I've experienced this myself now and then, but I'm afraid this is out of our league, jxpath imposes an XML way of looking at your java-bean that is sometimes 'surprising': Yes, I know and fear this. what most naturally looks like the standard java version of an xml snippet seems (often due to technical limitations that however logic need some thought to grasp) to be behaving different in the jxpath view next to this observation however I'ld like to question the real-life relevance: IMHO the advantage of jxpath under the hood of the binding is that it allows for reusing the syntax-metafor of xpath regardless of the backend. Being the mix of using slashes over dots, not needing parentheses and having a single expression that equally works for getting and setting (LHV/RHV) When it would work "regardless of the backend" ... I don't see it as a common use case that people during the lifetime would want to switch the backend from XML to JavaBeans (or vice versa) and actually expect to have all binding expressions work 'justlikethat'. While developing we often encoupled the backend from the frontend. The interface between both was a simple XML structure. The frontend knows what it will get, the backend what it has to deliver when the system is running. This allows independent development. Additionally we had static test XML files for the frontend, so that "real life" test is possible. The switching was just in the sitemap (XML from disk or from backend). Now I would have to maintain two binding files. Joerg
Re: [CForms] Support for multipe unique-row-id in Repeater
Joerg Heinicke wrote: On 05.03.2004 17:45, Marc Portier wrote: Yes, I only see that wb:unique-row (grouped by type: unique or not unique) is outside of wb:on-bind (grouped by event: on-bind, on-insert, on-delete) though it is executed also at on-bind event. yes, but do you find that surprising? (in fact all of the on-bind is implicit on-insert as well) I see. see my question about 'suprise' above: I don't think the cost in verbosity is gained by clarity here? I think replacing wb:unique-row with wb:identity does a far better job at adding clarity. All together we are at: yep, sounds like the best we have ATM IMHO the behaviour of what happens on the on-bind event is more related to the 'strategy' of the repeater as discussed here: http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=107062679414114&w=2 my proposal would be to mix-in the @strategy and have the docos introduce the clarity on what happens in 'on-bind' wdyt? I read all the threads and use cases. And yes, a unification of the pfew, you are a brave man :-) I need some time to list all changes, proposals, enhancements that were partially discussed but haven't got into code yet different repeater bindings is desirable goal. @strategy or @type or ... is a good way to specify this explicitely. yeah that is the approach that is gaining popularity in my head as well, thx for confirming Also the unification for binding to bean or XML is a one. This ends at the latest with the repeater at the moment as the @parent-path/@row-path is different for beans and XML. hm, I've experienced this myself now and then, but I'm afraid this is out of our league, jxpath imposes an XML way of looking at your java-bean that is sometimes 'surprising': what most naturally looks like the standard java version of an xml snippet seems (often due to technical limitations that however logic need some thought to grasp) to be behaving different in the jxpath view next to this observation however I'ld like to question the real-life relevance: IMHO the advantage of jxpath under the hood of the binding is that it allows for reusing the syntax-metafor of xpath regardless of the backend. Being the mix of using slashes over dots, not needing parentheses and having a single expression that equally works for getting and setting (LHV/RHV) I don't see it as a common use case that people during the lifetime would want to switch the backend from XML to JavaBeans (or vice versa) and actually expect to have all binding expressions work 'justlikethat'. (as such I think this mismatch-experience is mainly something that will overcome us developers, sample-makers, functional testers...) but all IMHO, so wdot? -marc= -- Marc Portierhttp://outerthought.org/ Outerthought - Open Source, Java & XML Competence Support Center Read my weblog athttp://blogs.cocoondev.org/mpo/ [EMAIL PROTECTED] [EMAIL PROTECTED]
Re: [CForms] Support for multipe unique-row-id in Repeater
On 05.03.2004 17:45, Marc Portier wrote: Yes, I only see that wb:unique-row (grouped by type: unique or not unique) is outside of wb:on-bind (grouped by event: on-bind, on-insert, on-delete) though it is executed also at on-bind event. yes, but do you find that surprising? (in fact all of the on-bind is implicit on-insert as well) I see. see my question about 'suprise' above: I don't think the cost in verbosity is gained by clarity here? I think replacing wb:unique-row with wb:identity does a far better job at adding clarity. All together we are at: IMHO the behaviour of what happens on the on-bind event is more related to the 'strategy' of the repeater as discussed here: http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=107062679414114&w=2 my proposal would be to mix-in the @strategy and have the docos introduce the clarity on what happens in 'on-bind' wdyt? I read all the threads and use cases. And yes, a unification of the different repeater bindings is desirable goal. @strategy or @type or ... is a good way to specify this explicitely. Also the unification for binding to bean or XML is a one. This ends at the latest with the repeater at the moment as the @parent-path/@row-path is different for beans and XML. Joerg
Re: [CForms] Support for multipe unique-row-id in Repeater
Joerg Heinicke wrote: Vadim Gritsenko reverycodes.com> writes: I also tend to prefer this approach - same reasoning with ambiguity of unique attribute. Yes, I only see that wb:unique-row (grouped by type: unique or not unique) is outside of wb:on-bind (grouped by event: on-bind, on-insert, on-delete) though it is executed also at on-bind event. yes, but do you find that surprising? (in fact all of the on-bind is implicit on-insert as well) Maybe a third alternative helps for that: And a fourth one is to specify values used for uniqueness independent on binding: I used wb:element because I had no name in mind. It also must be clear if you refer to path (bean or XML) or to id (form model widget). From the XML this is very similar to Antonio's original proposal and current implementation, but there is the important difference that there does *not* happen any binding on wb:unique-row and children. Therefore it's probably clearer than the other proposals but more verbose. WDYT? see my question about 'suprise' above: I don't think the cost in verbosity is gained by clarity here? I think replacing wb:unique-row with wb:identity does a far better job at adding clarity. IMHO the behaviour of what happens on the on-bind event is more related to the 'strategy' of the repeater as discussed here: http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=107062679414114&w=2 my proposal would be to mix-in the @strategy and have the docos introduce the clarity on what happens in 'on-bind' wdyt? Joerg -marc= -- Marc Portierhttp://outerthought.org/ Outerthought - Open Source, Java & XML Competence Support Center Read my weblog athttp://blogs.cocoondev.org/mpo/ [EMAIL PROTECTED] [EMAIL PROTECTED]
Re: [CForms] Support for multipe unique-row-id in Repeater
Vadim Gritsenko reverycodes.com> writes: > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > > I also tend to prefer this approach - same reasoning with ambiguity of > unique attribute. Yes, I only see that wb:unique-row (grouped by type: unique or not unique) is outside of wb:on-bind (grouped by event: on-bind, on-insert, on-delete) though it is executed also at on-bind event. Maybe a third alternative helps for that: And a fourth one is to specify values used for uniqueness independent on binding: I used wb:element because I had no name in mind. It also must be clear if you refer to path (bean or XML) or to id (form model widget). From the XML this is very similar to Antonio's original proposal and current implementation, but there is the important difference that there does *not* happen any binding on wb:unique-row and children. Therefore it's probably clearer than the other proposals but more verbose. WDYT? Joerg
Re: [CForms] Support for multipe unique-row-id in Repeater
Tim Larson wrote: On Fri, Mar 05, 2004 at 02:32:21AM +0100, Joerg Heinicke wrote: I also tend to prefer this approach - same reasoning with ambiguity of unique attribute. What do the other people think? I do not like this option, because it implies that the two wb:value's are individually unique. The first example above (with wb:unique-row) gives the right implication, that the values when combined identify a unique row. I have mixed feelings about using wb:unique-row, wb:key, or wb:unique-key, but I might be leaning toward wb:key. I'm ok with ... Oh, and I can suggest - this will not have RDBMS background :-) Vadim
Re: [CForms] Support for multipe unique-row-id in Repeater
On Fri, Mar 05, 2004 at 02:32:21AM +0100, Joerg Heinicke wrote: > > > > > > > > > > > > or > > > > > > > > > > > What do the other people think? I do not like this option, because it implies that the two wb:value's are individually unique. The first example above (with wb:unique-row) gives the right implication, that the values when combined identify a unique row. I have mixed feelings about using wb:unique-row, wb:key, or wb:unique-key, but I might be leaning toward wb:key. --Tim Larson
Re: [CForms] Support for multipe unique-row-id in Repeater
On 05.03.2004 02:10, Antonio Gallardo wrote: Hi Joerg: If the problem is just to change a name: from to Then, no problem from my side. If you agree, I will change the code and this issue can be closed, right? :-D No, please don't do another fast shot. I would like to have this discussed by a few more people. And it was more than just the name: - the additional binding classes (bloated Java) - the @direction - wb:unique-row/wb:value vs. wb:on-bind/wb:value/@unique So it's not just the name, but the binding to be used (ValueJXPathBinding vs. UniqueFieldJXPathBinding). And we need agreement on or What do the other people think? Joerg
Re: [CForms] Support for multipe unique-row-id in Repeater
Hi Joerg: If the problem is just to change a name: from to Then, no problem from my side. If you agree, I will change the code and this issue can be closed, right? :-D Best Regards, Antonio Gallardo.
Re: [CForms] Support for multipe unique-row-id in Repeater
On 04.03.2004 05:04, Antonio Gallardo wrote: Joerg Heinicke dijo: It was a good idea to replace the both attributes with a more sophisticated XML structure, but it is a bad realization in my opinion. I posted a proposal for changes before I started to code it. Nobody answer (a silent aproval?), then I started the coding. Only Tim answered and give me his OK. The good news is it is not too hard to change the code and/or tag names. I agree with you: we can do it far better. But how to start if nobody cares about this change? On the other way I don't wanted to have this as another "aproved change" without implementation. Seems like coding is a good tool to put little pressure on other committers to review a proposal. Your comments are very welcomed. ;-D This was why I ended my rant with Unfortunately not many Woody developers are really active on the list at the moment. It was not a criticism to the maybe lazy people, but a real regret, that discussions on CForms are missing at the moment. On the other hand the proposal came in a thread without any relevance ("TempRepeater vs. SimpleRepeater"), so I for example just didn't read it at the weekend as I still had to read things about conjoint measurement and analysis of variances. A simple [proposal] in the subject and a bit more time to react on it would have helped I think. The above is redundant, irritating (unique-field is not really correctly named, is it?) Not sure, we can change it, I don't got long time thinking in the "right" name. I am willing to change it for a more descriptive name. Can you give us a suggestion? I will get to this topic later in the mail. and (because of the more java code we need) bloated. ^^^ (Don't understand the word). No dictionary at hand? Bloating a balloon ... bloating our code ... On the one hand the redundancy above is obvious, The redundancy was always there (using the old attributes you will see it), maybe now it is more clear (evident) than before No, I don't see this in the samples and in my code. The binding is already done by just @unique-row-id and @unique-path. That this binding is completely differently specified than the other ones was the most irritating on these attributes. Therefore I like the move to the "sophisticated XML structure" as I called it. on the other hand sentences like "This unique-field element ... The id and path attributes have the same meaning as in . ... The wd:convertor ... For more info see the description of this element in ." will get me suspicious. Why the §$%& we need an additional XML element if we have already one that seems to be perfect for it: wb:value as the frequent references above show? I thought about this too. The description don't need all the attributes of a element. Sample for which of the attributes are not needed? After thinking on it, I thought it would be better (even from a descriptive POV) to have another tag describing clearly what the is intendend for. It is a striped down version of and conceptually they are diferent. Here I don't agree. It's exactly the same. You bind a value to a field. But the binding does not know anything about the concept "field" - one reason for not calling it wb:unique-field. So we would have wb:unique-value. But this particular value is not needed to be unique, only the aggregation of all childs of wb:unique-row. That's wb:unique-value is also still irritating. Now we were back to wb:value. On the other side I don't mean to change the binding to much to allow a back compatibility with the old approach. Don't get your point here. Using wb:value does not change anything in relation to back compatibility or am I wrong? Why do we have to specify @id and @path twice for those identifying elements? And so on. Not necesary at all. Note, sometime you don't define (or want to define) a inside the the key values. So it is valid too: I hope I don't miss anything important. This does look much better of course, but for which cases would you add it to wb:on-bind and for which cases not? And the latter we do this the more we will break. Unfortunately not many Woody developers are really active on the list at the moment. Because of short of time I don't posted this change to the user list. It is my fault. Now, I am not sure if I can post on the user list about the change since this mail looks like a total non-approval of the proposal. Then why to ring a bell to the users? We can easily undo all the changes and nothing will happens, then from a POV of users: it never happen at all. :-) No, we will bring this to good end and announce it afterwards. As I said using the elements wb:unique-row & Co. I like much more than the both attributes. Another thing that I don't like is the new restriction: "Note: This binding is only active in the '
Re: [CForms] Support for multipe unique-row-id in Repeater
Joerg Heinicke dijo: >> >> >> >> >> >> >> >> >> >> >> >> > > It was a good idea to replace the both attributes with a more > sophisticated XML structure, but it is a bad realization in my opinion. I posted a proposal for changes before I started to code it. Nobody answer (a silent aproval?), then I started the coding. Only Tim answered and give me his OK. The good news is it is not too hard to change the code and/or tag names. I agree with you: we can do it far better. But how to start if nobody cares about this change? On the other way I don't wanted to have this as another "aproved change" without implementation. Seems like coding is a good tool to put little pressure on other committers to review a proposal. Your comments are very welcomed. ;-D > > The above is redundant, irritating (unique-field is not really correctly > named, is it?) Not sure, we can change it, I don't got long time thinking in the "right" name. I am willing to change it for a more descriptive name. Can you give us a suggestion? > and (because of the more java code we need) bloated. ^^^ (Don't understand the word). > On > the one hand the redundancy above is obvious, The redundancy was always there (using the old attributes you will see it), maybe now it is more clear (evident) than before > on the other hand > sentences like "This unique-field element ... The id and path attributes > have the same meaning as in . ... The wd:convertor ... For > more info see the description of this element in ." will get > me suspicious. Why the §$%& we need an additional XML element if we have > already one that seems to be perfect for it: wb:value as the frequent > references above show? I thought about this too. The description don't need all the attributes of a element. After thinking on it, I thought it would be better (even from a descriptive POV) to have another tag describing clearly what the is intendend for. It is a striped down version of and conceptually they are diferent. On the other side I don't mean to change the binding to much to allow a back compatibility with the old approach. > Why do we have to specify @id and @path twice for > those identifying elements? And so on. Not necesary at all. Note, sometime you don't define (or want to define) a inside the the key values. So it is valid too: > Such changes should be well > thought out, otherwise we have to change to much later on when > sophisticating our XML elements. They are, it cannot interefere with a more complex XML elements. Less is sometimes better than nothing. It is just a first step. If this first step was not taken we will not being discussing this issue at all. ;-) > And the latter we do this the more we > will break. Unfortunately not many Woody developers are really active on > the list at the moment. Because of short of time I don't posted this change to the user list. It is my fault. Now, I am not sure if I can post on the user list about the change since this mail looks like a total non-approval of the proposal. Then why to ring a bell to the users? We can easily undo all the changes and nothing will happens, then from a POV of users: it never happen at all. :-) > > > Another thing that I don't like is the new restriction: > "Note: This binding is only active in the 'load' operation, so > specifying the direction="save" is meaningless." This is another thing that was there all the time, even before the changes. I just replicated the same approach at it was before. The change is just related to have multivalue "unique fields" instead of just one (old style). Nothing more nor nothing less. > Sorry, Antonio, but you seem to be often the targets of my rants ... No problem at all. This help us to improve Cocoon. I am glad this happen, keep on it. ;-) The worse to me, will be when nobody will care on the work I do. >> NOTE: The "old style" is also supported. You don't need to rewrite your >> code. But I think we can also deprecate the old way (using attributes). > > I would not let live these deprecated attributes that long. Just like we > did it for @readonly => @direction I would remove it as fast as possible > and therefore do a big ANNOUNCEMENT on the users list. OK. But I need an approval before make an ANNOUNCEMENT to the user list. Let discuss it. I am sure we can improve the current solution. > BTW, the wd:convertor element can also be deprecated and removed as it > is used in combination with the unique-row-id. Yep. I forgot to write about this. I already review the changes you do on wiki. Thanks for you time to do this. Some comments about other ways we droped while designing: 1-An initial name we tought was: --> But this was for us much DB oriented and we are talking about forms here. Carlos also pointed aout that a "primary key" in f
Re: [CForms] Support for multipe unique-row-id in Repeater
On Wed, 2004-03-03 at 22:24, Joerg Heinicke wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > It was a good idea to replace the both attributes with a more > sophisticated XML structure, but it is a bad realization in my opinion. > > > The above is redundant, irritating (unique-field is not really correctly > named, is it?) and (because of the more java code we need) bloated. On > the one hand the redundancy above is obvious, on the other hand > sentences like "This unique-field element ... The id and path attributes > have the same meaning as in . ... The wd:convertor ... For > more info see the description of this element in ." will get > me suspicious. Why the §$%& we need an additional XML element if we have > already one that seems to be perfect for it: wb:value as the frequent > references above show? Why do we have to specify @id and @path twice for > those identifying elements? And so on. Such changes should be well > thought out, otherwise we have to change to much later on when > sophisticating our XML elements. And the latter we do this the more we > will break. Unfortunately not many Woody developers are really active on > the list at the moment. > I don't have the time and energy currently to follow all these developments, but thanks for keeping a critical eye on it. -- Bruno Dumon http://outerthought.org/ Outerthought - Open Source, Java & XML Competence Support Center [EMAIL PROTECTED] [EMAIL PROTECTED]
Re: [CForms] Support for multipe unique-row-id in Repeater
It was a good idea to replace the both attributes with a more sophisticated XML structure, but it is a bad realization in my opinion. The above is redundant, irritating (unique-field is not really correctly named, is it?) and (because of the more java code we need) bloated. On the one hand the redundancy above is obvious, on the other hand sentences like "This unique-field element ... The id and path attributes have the same meaning as in . ... The wd:convertor ... For more info see the description of this element in ." will get me suspicious. Why the §$%& we need an additional XML element if we have already one that seems to be perfect for it: wb:value as the frequent references above show? Why do we have to specify @id and @path twice for those identifying elements? And so on. Such changes should be well thought out, otherwise we have to change to much later on when sophisticating our XML elements. And the latter we do this the more we will break. Unfortunately not many Woody developers are really active on the list at the moment. Another thing that I don't like is the new restriction: "Note: This binding is only active in the 'load' operation, so specifying the direction="save" is meaningless." Sorry, Antonio, but you seem to be often the targets of my rants ... NOTE: The "old style" is also supported. You don't need to rewrite your code. But I think we can also deprecate the old way (using attributes). I would not let live these deprecated attributes that long. Just like we did it for @readonly => @direction I would remove it as fast as possible and therefore do a big ANNOUNCEMENT on the users list. BTW, the wd:convertor element can also be deprecated and removed as it is used in combination with the unique-row-id. Joerg