a year too late? :) -igor
On 3/7/07, aozster <[EMAIL PROTECTED]> wrote:
igor.vaynberg wrote: > > 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. > > ------> attribute modifier is more flexible and reusable > > * 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. > > ------> The trade off is too high, It can be archive with more explicit > mechanism, not by forcing static structure and let compiler checking help > detect this. > > * getPage() and getPath() will work in the component's constructor. this > is > really nice for ajax stuff. > > -------> It should be available in other component lifcycle method, or use > publish subscribe mechanism , shouldn't rely on constructor ( which means > vm object creation ). > > 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? > > -----------> component can not switch parent. > Usecases: > CMS -> layout designer provide template and look and feel and let's > content author to place component in placeholder and may be switch between > placeholder, component may appear across pages (state is ratained across > page) > Rich Internet Application UI -> multitab pane , doggable pane which user > can move pane around. > Portal -> wicket component can be views as portlet and viewlet which use > can customized to suit their needs. > > -> 2.0 It means I have to recreate it, specifying new parent in > constructor , copy all state from the old panel to the new one and place > in new placeholder. > > > please provide us with feedback/concerns so we have a better feel for > requirements out there. > > thanks, > -Igor > > -- View this message in context: http://www.nabble.com/remove-add%28%29-and-pass-parent-in-constructor--tf929620.html#a9369154 Sent from the Wicket - Dev mailing list archive at Nabble.com.
