Tim Larson wrote:

On Tue, Nov 02, 2004 at 11:29:28AM +0100, Sylvain Wallez wrote:


Unusual for me, but time for a rant: I wrote the new CForms widget state feature in 2.1 and tried to port it to 2.2.

WHAT A PITA!

There are a number or *bug fixes* or minor new features that only exist in 2.2. Why aren't they ported also to 2.1?

Please, please, consider upgrading both branches at the same time. There will be some time before 2.2 is out and not everybody runs a snapshot of trunk.


<snip/>


Grmbl... lost 2 hours this morning to do the merge, and finally reverted all :-(



Very sorry that you lost time :( I had not ported my changes to 2_1_x yet because I was not sure they were ready, but addmittedly there were some bugfixes included that I should have ported immediately.

I am working on the port now and have it almost finished,



Buhooo... I missed your post and am also almost finished :-(((

but I have a few questions about some recent changes that
the commit comments did not make clear to me:

AbstractWidget.java
From: public Widget getParent()
To: public final Widget geParent()



I had a bug while writing widget states because Repeater.RepeaterRow was redefining getParent() while I was using this.parent. So I made it final in order to be able to use this.parent throughout AbstractWidget.


Field.java
From: super validate
To: super validate && widget != null



That's "value != null". This check is required as "old-style validators" (the ones that were inside fd:datatype) assume a non-null value and this was therefore leading to NPEs.


Repeater.java
In inner class RepeaterRow
From: getParent() returns Repeater.this and
setParent() throws a RuntimeException
To: setParent(Repeater.this)
(This seems to be caused by the AbstractWidget
change above.)



Exactly.

Could you explain what these changes are for, and then
I can finish the porting.



Mmmh... I nearly finished it on my side... how do we proceed? I'm ready to finish that job if you don't mind.


Note that there are some new features in 2.2 that I wouldn't like to be ported now to 2.1 as I'm not very happy with them and would like some discussion about them:
- the get/setProcessRequest() stuff which seems to overlap with widget states
- the new "choose/when" statement in EffectWidgetReplacingPipe: for complex control structures, we have template languages like JTXG and XSP. It doesn't seem good to me that every transformer reinvents it's own control structure language.


Sylvain

--
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }



Reply via email to