On 8/30/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:
>
> I think what you want can be compared to what Tapestry supports.


the reason this works ok for tapestry is because component hierarchy is very
flat. 99% usecase is you have a page and you add a bunch of components to
it, one level deep. wicket is different, the hierarchy is completely
arbitrary and can change at runtime. i dont see tapestry supporting a
single-page application where you just swap panels as the main means of
workflow. in order to support that we really do need to know which component
is inside which other one? the tree is also great for advanced processing
where you can use visitors to mutate it arbitrarily or conviniences such as
compoundpropertymodel.

given some effort what we can do is derive the hierarchy from html layout
during render/some sort of preprocessing, and still allow for those
visitors, but the problem is that the hierarchy mutates, visibilities
change, etc. so you would always need a render/html traversal if you wanted
to have the hierarchy available, and that would get very very messy.

is this all doable? probably. the problem is we wont know cons until we have
actually built it, and it will take a tramendous effort for us to do that.
the abandoned 2.0 branch took about half a year of work, if not more. we
believed the constructor refactor was a Good Thing because it solved
problems. however, once we got there we noticed certain things were no
longer as easy or as flexible, or even possible. it created more cons then
pros so we had to throw all that away.

i have the same feeling about this. right away it is obvious that repeaters
wont work because they _do_ need to have the same id in the markup (but
their path is unique because of the hierarchy). things that add components
at runtime wont have access to the hierarchy right away, etc.

while in the beginning it does seem like a pita to keep it in sync, after a
little bit it becomes second nature and you dont even notice it.

my 2c

-igor

Reply via email to