Thanks.  But what does OuterPanelClass refer to in my example? 

I don't think either of these are right:

MyEmptyPanel.this.panel.replaceWith(replacement);
-or-
MyPage.this.panel.replaceWith(replacement);

Or do I need to define workingPanel as a private member of my page class and 
then have:

MyPage.this.workingPanel.replaceWith(replacement);
MyPage.this.workingPanel = replacement;






-----Original Message-----
From: Igor Vaynberg [mailto:[email protected]] 
Sent: Wednesday, March 28, 2012 3:07 PM
To: [email protected]
Subject: Re: Event handling and swapping panels

OuterPanelClass.this.panel.replaceWith(replacement);
OuterPanelClass.this.panel=replacement;

-igor

On Wed, Mar 28, 2012 at 11:33 AM, Jeffrey Schneller 
<[email protected]> wrote:
> I want to swap panels using the event model in 1.5.  This is very similar to 
> the panel swapping code (wicket 1.4.x)  found in the Apache Wicket Cookbook 
> but uses the event model instead.  The problem is I can't set the panel equal 
> to its replacement, like you would in 1.4.x.  This is found on the line 
> marked ***** THIS IS NOT POSSIBLE *****.
>
> How would you go about doing this?  Is it even possible?
>
> Component workingPanel = new MyEmptyPanel("workingPanel") {
>                @Override
>                public void onEvent(IEvent<?> event) {
>                                                if (event.getPayload() 
> instanceof MyPanelEvent) {
>                                                                
> MyPanelEvent e = (MyPanelEvent) event.getPayload();
>
>                                                Component replacement;
>                                                                switch 
> (e.getType()) {
>
>                                                                case 
> MyPanelEvent.PANEL1:
>                                                                               
>  
> replacement = new MyFirstPanel(this.getId());
>                                                                break;
>                                                default:
>                                                                
> replacement = this;
>                                                                break;
>                                                                }
>                                                
> this.replaceWith(replacement);
>                                                this. = replacement;           
>             
> // ****** THIS IS NOT POSSIBLE - HOW WOULD I DO THIS *******
>                                                
> this.setOutputMarkupId(true);
>                                                AjaxRequestTarget 
> target = e.getTarget();
>                                                target.add(this);
>                                }
>                                super.onEvent(event);
>                }
> workingPanel.setOutputMarkupId(true);
> add(workingPanel);
>
> AjaxLink firsttab = new AjaxLink("firsttab") {
>                @Override
>                public void onClick(AjaxRequestTarget target) {
>                                send(getPage(), Broadcast.BREADTH, new 
> MyPanelEvent (target, MyPanelEvent.PANEL1));
>                }
> };
> firsttab.setOutputMarkupId(true);
> firsttab.setMarkupId("firsttab ");
> add(firsttab);
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to