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

-igor

On Wed, Mar 28, 2012 at 11:33 AM, Jeffrey Schneller
<jeffrey.schnel...@envisa.com> 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);
>

Reply via email to