Can a Panel's id be re-assigned after construction?

2008-06-09 Thread Peter Gardfjell

Hi,

a quick question. Is it possible to assign a new id to a Panel after it has
been constructed?
Something similar to:

  public Panel createPanel() {
return new MyPanel(dummyID, ...);
  }
  ...
  ...
  Panel myPanel = createPanel();
  myPanel.setId(newID);

I would like to have a component that acts as a Panel factory (the
createPanel method above), without requiring the factory to now about the
markup context of the calling code. Hence, the factory method would create
it with a dummy id that is replaced by the consumer to adapt it to its
markup context.

Is something along these lines possible in Wicket? Or is there perhaps
another (wicket way) for achieving tasks like these.

regards, Peter

-- 
View this message in context: 
http://www.nabble.com/Can-a-Panel%27s-id-be-re-assigned-after-construction--tp17739309p17739309.html
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can a Panel's id be re-assigned after construction?

2008-06-09 Thread Igor Vaynberg
pass the id into the createPanel method

-igor

On Mon, Jun 9, 2008 at 11:51 AM, Peter Gardfjell
[EMAIL PROTECTED] wrote:

 Hi,

 a quick question. Is it possible to assign a new id to a Panel after it has
 been constructed?
 Something similar to:

  public Panel createPanel() {
return new MyPanel(dummyID, ...);
  }
  ...
  ...
  Panel myPanel = createPanel();
  myPanel.setId(newID);

 I would like to have a component that acts as a Panel factory (the
 createPanel method above), without requiring the factory to now about the
 markup context of the calling code. Hence, the factory method would create
 it with a dummy id that is replaced by the consumer to adapt it to its
 markup context.

 Is something along these lines possible in Wicket? Or is there perhaps
 another (wicket way) for achieving tasks like these.

 regards, Peter

 --
 View this message in context: 
 http://www.nabble.com/Can-a-Panel%27s-id-be-re-assigned-after-construction--tp17739309p17739309.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can a Panel's id be re-assigned after construction?

2008-06-09 Thread Peter Gardfjell


Of course. In the toy example I attached, the obvious solution is to add an
id parameter.
However, in some cases, for instance when the factory methods contain longer
parameter lists, the extra identifier parameter tends to clutter the API. I
really like the encapsulation that Panels offer, but it kind of bugs me that
they always need to be created in the context of the consumer's markup (that
is, knowing the markup identifier at the consuming end). Maybe I just
haven't fully understood the Wicket paradigm yet...

Still, you did not really answer my original question (although you may have
done so, implicitly... :-).
Just to make things absolutely clear: can a Panel only be assigned an
identifier at the time its constructor  is called?

/Peter



igor.vaynberg wrote:
 
 pass the id into the createPanel method
 
 -igor
 
 On Mon, Jun 9, 2008 at 11:51 AM, Peter Gardfjell
 [EMAIL PROTECTED] wrote:

 Hi,

 a quick question. Is it possible to assign a new id to a Panel after it
 has
 been constructed?
 Something similar to:

  public Panel createPanel() {
return new MyPanel(dummyID, ...);
  }
  ...
  ...
  Panel myPanel = createPanel();
  myPanel.setId(newID);

 I would like to have a component that acts as a Panel factory (the
 createPanel method above), without requiring the factory to now about the
 markup context of the calling code. Hence, the factory method would
 create
 it with a dummy id that is replaced by the consumer to adapt it to its
 markup context.

 Is something along these lines possible in Wicket? Or is there perhaps
 another (wicket way) for achieving tasks like these.

 regards, Peter

 --
 View this message in context:
 http://www.nabble.com/Can-a-Panel%27s-id-be-re-assigned-after-construction--tp17739309p17739309.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 

-- 
View this message in context: 
http://www.nabble.com/Can-a-Panel%27s-id-be-re-assigned-after-construction--tp17739309p17739811.html
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can a Panel's id be re-assigned after construction?

2008-06-09 Thread Martijn Dashorst
On Mon, Jun 9, 2008 at 9:21 PM, Peter Gardfjell
[EMAIL PROTECTED] wrote:
 Just to make things absolutely clear: can a Panel only be assigned an
 identifier at the time its constructor  is called?

Yes.

Martijn
-- 
Become a Wicket expert, learn from the best: http://wicketinaction.com
Apache Wicket 1.3.3 is released
Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.3

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can a Panel's id be re-assigned after construction?

2008-06-09 Thread Igor Vaynberg
it is possible. you can write a component that is only allowed to have
one child with any id using an IComponentResolver. is that a good
practice? if i were implementing your factory interface i would be
confused as to what id i should use since the panel takes it as a
constructor arg...so which way is better is up to you.

-igor

On Mon, Jun 9, 2008 at 12:21 PM, Peter Gardfjell
[EMAIL PROTECTED] wrote:


 Of course. In the toy example I attached, the obvious solution is to add an
 id parameter.
 However, in some cases, for instance when the factory methods contain longer
 parameter lists, the extra identifier parameter tends to clutter the API. I
 really like the encapsulation that Panels offer, but it kind of bugs me that
 they always need to be created in the context of the consumer's markup (that
 is, knowing the markup identifier at the consuming end). Maybe I just
 haven't fully understood the Wicket paradigm yet...

 Still, you did not really answer my original question (although you may have
 done so, implicitly... :-).
 Just to make things absolutely clear: can a Panel only be assigned an
 identifier at the time its constructor  is called?

 /Peter



 igor.vaynberg wrote:

 pass the id into the createPanel method

 -igor

 On Mon, Jun 9, 2008 at 11:51 AM, Peter Gardfjell
 [EMAIL PROTECTED] wrote:

 Hi,

 a quick question. Is it possible to assign a new id to a Panel after it
 has
 been constructed?
 Something similar to:

  public Panel createPanel() {
return new MyPanel(dummyID, ...);
  }
  ...
  ...
  Panel myPanel = createPanel();
  myPanel.setId(newID);

 I would like to have a component that acts as a Panel factory (the
 createPanel method above), without requiring the factory to now about the
 markup context of the calling code. Hence, the factory method would
 create
 it with a dummy id that is replaced by the consumer to adapt it to its
 markup context.

 Is something along these lines possible in Wicket? Or is there perhaps
 another (wicket way) for achieving tasks like these.

 regards, Peter

 --
 View this message in context:
 http://www.nabble.com/Can-a-Panel%27s-id-be-re-assigned-after-construction--tp17739309p17739309.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




 --
 View this message in context: 
 http://www.nabble.com/Can-a-Panel%27s-id-be-re-assigned-after-construction--tp17739309p17739811.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]