May be you should try making your panel abstract and override an
abstract method as an anonymous inner class of your page, instead of all
your "ifs" ?
Like :
public abstract class MyPageRelatedPanel extends Panel {
public MyPageRelatedPanel(String id, IModel model) {
super(id, model);
[..add your common components, etc..]
createSpecificPart();
}
protected abstract void createSpecificPart();
}
and in your page :
add(new MyPageRelatedPanel("id", panelModel) {
protected abstract void createSpecificPart() {
[..add your special page related components, behaviors, etc.. here]
}
};
This way you keep your panel generic enough and page independant and can
reuse it in pages you haven't created yet !
Just my 2 cents,
Cheers,
Antoine.
Artur W. a écrit :
Hi!
I want to create a Panel that its content depends to which page it was
added.
So I want to do something like this
if (getPage().getPageClass() == Page1.class) {
[...]
} else if (getPage().getPageClass() == Page2.class) {
[...]
} else {
[...]
}
and so on.
But when I call getPage() I get
org.apache.wicket.WicketRuntimeException: Can't instantiate page using
constructor public com.test.AdminPage(org.apache.wicket.PageParameters) and
argument
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:175)
at
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:66)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:262)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:283)
at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:210)
at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:90)
at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1094)
[...]
Caused by: java.lang.IllegalStateException: No Page found for component
[MarkupContainer [Component id = menuPanel, page = <No Page>, path =
menuPanel.AdminPage$3]]
at org.apache.wicket.Component.getPage(Component.java:1600)
How can I do this? (I use Wicket 1.3rc2)
Thanks,
Artur
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]