| From | Sent On | Attachments |
|---|---|---|
| 2 earlier messages | ||
| Jonathan Locke | Nov 4, 2010 3:06 pm | |
| Martin Makundi | Nov 4, 2010 3:08 pm | |
| Martin Makundi | Nov 4, 2010 3:13 pm | |
| Jeremy Thomerson | Nov 4, 2010 9:56 pm | |
| Martin Makundi | Nov 4, 2010 10:59 pm | |
| Martin Makundi | Nov 4, 2010 11:46 pm | |
| Michał Letyński | Nov 5, 2010 12:52 am | |
| Martin Makundi | Nov 5, 2010 1:07 am | |
| Martin Grigorov | Nov 5, 2010 1:12 am | |
| Martin Makundi | Nov 5, 2010 1:15 am | |
| Martin Grigorov | Nov 5, 2010 1:20 am | |
| Marc Nuri San Félix | Nov 5, 2010 1:22 am | |
| Martin Makundi | Nov 5, 2010 1:28 am | |
| Martin Makundi | Nov 5, 2010 1:31 am | |
| Martin Grigorov | Nov 5, 2010 1:34 am | |
| Martin Grigorov | Nov 5, 2010 1:36 am | |
| Martin Makundi | Nov 5, 2010 1:37 am | |
| Martin Makundi | Nov 5, 2010 1:38 am | |
| Martin Makundi | Nov 5, 2010 1:40 am | |
| Leszek Gawron | Nov 5, 2010 5:36 am | |
| James Carman | Nov 5, 2010 5:39 am | |
| Martin Makundi | Nov 5, 2010 5:47 am | |
| Igor Vaynberg | Nov 5, 2010 9:55 am | |
| Jeremy Thomerson | Nov 5, 2010 10:00 am | |
| Martin Makundi | Nov 5, 2010 10:23 am | |
| Igor Vaynberg | Nov 5, 2010 11:19 am | |
| Martin Makundi | Nov 5, 2010 11:39 am | |
| Eelco Hillenius | Nov 5, 2010 11:49 am | |
| Eelco Hillenius | Nov 5, 2010 11:56 am | |
| Martin Makundi | Nov 5, 2010 11:58 am | |
| Martin Makundi | Nov 5, 2010 12:00 pm | |
| Eelco Hillenius | Nov 5, 2010 12:15 pm | |
| Igor Vaynberg | Nov 5, 2010 12:55 pm | |
| Brian Topping | Nov 5, 2010 12:56 pm | |
| Martin Makundi | Nov 5, 2010 1:06 pm | |
| Martin Makundi | Nov 5, 2010 1:14 pm | |
| Igor Vaynberg | Nov 5, 2010 1:21 pm | |
| Brian Topping | Nov 5, 2010 1:32 pm | |
| Martin Makundi | Nov 5, 2010 10:05 pm | |
| Martin Makundi | Nov 5, 2010 10:07 pm | |
| Jeremy Thomerson | Nov 5, 2010 10:48 pm | |
| Martin Makundi | Nov 5, 2010 11:31 pm | |
| Igor Vaynberg | Nov 5, 2010 11:53 pm | |
| Martin Makundi | Nov 5, 2010 11:57 pm | |
| James Carman | Nov 6, 2010 5:12 am | |
| Martin Makundi | Nov 6, 2010 5:20 am | |
| Jeremy Thomerson | Nov 6, 2010 6:22 am | |
| Martin Makundi | Nov 6, 2010 6:43 am | |
| samket | Nov 6, 2010 6:54 am | |
| Igor Vaynberg | Nov 6, 2010 4:44 pm | |
| Sebastian | Nov 8, 2010 8:17 am | |
| Vitaly Tsaplin | Nov 8, 2010 8:23 am | |
| Igor Vaynberg | Nov 8, 2010 8:27 am | |
| Martin Makundi | Nov 8, 2010 8:29 am | |
| Igor Vaynberg | Nov 8, 2010 8:35 am | |
| Vitaly Tsaplin | Nov 8, 2010 8:35 am | |
| Martin Makundi | Nov 8, 2010 8:42 am | |
| Sebastian | Nov 8, 2010 8:51 am | |
| Martin Makundi | Nov 8, 2010 8:58 am | |
| Igor Vaynberg | Nov 8, 2010 8:58 am | |
| Igor Vaynberg | Nov 8, 2010 9:03 am | |
| Sebastian | Nov 8, 2010 9:07 am | |
| Martin Makundi | Nov 8, 2010 9:13 am | |
| Omid Milani | Nov 8, 2010 9:31 am | |
| Igor Vaynberg | Nov 8, 2010 9:32 am | |
| Rodolfo Hansen | Nov 8, 2010 10:01 am | |
| Eelco Hillenius | Nov 8, 2010 10:22 pm | |
| Martin Makundi | Nov 8, 2010 10:39 pm | |
| Martin Makundi | Nov 8, 2010 10:40 pm | |
| Carl-Eric Menzel | Nov 9, 2010 12:15 am | |
| Martin Makundi | Nov 9, 2010 12:19 am | |
| Martin Makundi | Nov 9, 2010 12:23 am | |
| Carl-Eric Menzel | Nov 9, 2010 12:41 am | |
| Carl-Eric Menzel | Nov 9, 2010 12:44 am | |
| Martin Makundi | Nov 9, 2010 1:01 am | |
| Carl-Eric Menzel | Nov 9, 2010 4:12 am | |
| Martin Makundi | Nov 9, 2010 4:21 am | |
| Vitaly Tsaplin | Nov 9, 2010 4:29 am | |
| Martin Makundi | Nov 9, 2010 4:34 am | |
| Matthias Keller | Nov 9, 2010 4:46 am | |
| manuelbarzi | Nov 9, 2010 4:49 am | |
| James Carman | Nov 9, 2010 4:49 am | |
| Martin Makundi | Nov 9, 2010 4:54 am | |
| James Carman | Nov 9, 2010 4:57 am | |
| Martin Makundi | Nov 9, 2010 4:58 am | |
| manuelbarzi | Nov 9, 2010 5:26 am | |
| Martin Makundi | Nov 9, 2010 5:48 am | |
| Frank Silbermann | Nov 9, 2010 6:46 am | |
| Martin Grigorov | Nov 9, 2010 6:58 am | |
| Carl-Eric Menzel | Nov 9, 2010 7:02 am | |
| James Carman | Nov 9, 2010 7:05 am | |
| Carl-Eric Menzel | Nov 9, 2010 7:11 am | |
| Carl-Eric Menzel | Nov 9, 2010 7:14 am | |
| Frank Silbermann | Nov 9, 2010 7:19 am | |
| Martin Makundi | Nov 9, 2010 7:20 am | |
| Martin Makundi | Nov 9, 2010 7:22 am | |
| James Carman | Nov 9, 2010 7:26 am | |
| Frank Silbermann | Nov 9, 2010 7:28 am | |
| Martin Makundi | Nov 9, 2010 7:32 am | |
| Wilhelmsen Tor Iver | Nov 9, 2010 7:32 am | |
| 114 later messages | ||
| Subject: | Re: Free wicket from component hierarchy hell | |
|---|---|---|
| From: | Igor Vaynberg (igor...@gmail.com) | |
| Date: | Nov 6, 2010 4:44:40 pm | |
| List: | org.apache.wicket.users | |
here is a proper very rough initial implementation:
https://github.com/ivaynberg/wicket/commit/cbe861f4028120993f5d10d575f12c4ca291fdce
now someone has to mature it to the point where it can be properly evaluated.
-igor
On Sat, Nov 6, 2010 at 6:54 AM, samket <sam...@gmx.com> wrote:
We need to wait until all components are added so that we can arrange
them into correct hireracy before rendering.
May I suggest that components are added with help of a builder object, for
example:
public MyPanel(String id) { super(id); Builder b = new Builder(this); // the Builder gets reference to this MyPanel b.add(new TextField("name")); // can be child of "form" which is added later b.add(new SomeForm("form")); b.build(); // after this line this MyPanel contains the components name and form }
If MyPanel's super class needs to access the same builder, it can provide a
constructor for it. In that case b.build() should be only invoked in MyPanel's
constructor.
If a developer uses more than one builder in a constructor, he can restrict
moving of components in markup to some extent:
public MyPanel(String id) {
super(id);
Builder b1 = new Builder(this);
b1.add(new TextField("name")); // in markup, "name" can't be put under "form"
because it's in a different builder
b1.build();
Builder b2 = new Builder(this);
b2.add(new SomeForm("form");
b2.build();
}
Of course this doesn't solve the problem Igor mentioned. For that you'd need the
"old-fashioned way":
public MyPanel(String id) {
super(id);
SomeForm form = new SomeForm("form");
form.add(new TextField("name"); // in markup, "name" can't be moved out from
"form"
add(form);
}
Developers would need to mix different approaches for building hierarchies if
security is an issue. On second thought, I should use a broader term than
security because there is more than one reason to restrict those pesky designers
;)





