hello all,
we, the core devel group, have been discussing and evaluating a possible change we would like to make for the next release and we would like your input.
the idea is to remove the Component.add(Component child) method and link components via a constructor instead: Component(Component parent, String id)
this has a couple of advantages:
* have access to markup the component is attached to in the constructor. that means you can read attributes and initialize your component appropriately. it also means we can eliminate the use of attribute modifiers for non-dynamic attribute replacement.
* we can fail super-early if there is a mismatch between component and markup hierachies. currently we dont fail until render time, with this change we can fail in the Component constructor - so before the component is actually created. this will give you a line precise error in markup AND java code.
* getPage() and getPath() will work in the component's constructor. this is really nice for ajax stuff.
the big disadvantage of course is that we will break ALL existing code. it is a simple change to fix though. a hybrid of this and add() will not work because all links in the chain need to use the new constructor for it to work.
we would also provide Component.remove() and Component.readd() which remove/readd component to its parent. so the link between parent and child is now managed on the child's side instead of the parent's side. this, of course, makes it impossible to move components between parents - is there a usecase for this?
please provide us with feedback/concerns so we have a better feel for requirements out there.
thanks,
-Igor
- [Wicket-develop] remove add() and pass parent in co... Igor Vaynberg
- Re: [Wicket-develop] remove add() and pass par... Eelco Hillenius
- Re: [Wicket-develop] remove add() and pass... Ingram Chen
- Re: [Wicket-develop] remove add() and ... Igor Vaynberg
- [Wicket-develop] Re: remove add() ... Jim McLaughlin
- Re: [Wicket-develop] Re: remo... Igor Vaynberg
- [Wicket-develop] Re: remo... Jim McLaughlin
- Re: [Wicket-develop] remove add() ... Jonathan Locke
- Re: [Wicket-develop] remove a... Nick Heudecker
- Re: [Wicket-develop] remo... Iulian-Corneliu Costan
- Re: [Wicket-develop] remove add() and pass... Ari Suutari
