Hi,

François solution is based on the wicket event bus which is the recommanded
approach.

To broadcast to a parent component which might not be the page, you can use
:
send(this, Broadcast.BUBBLE)
Or even
send(getPage(), Broadcast.BREADTH)

You may also put a breakpoint in onEvent to verify it is reached with your
payload.

Thanks,
Sebastien

On Mon, May 27, 2019, 10:03 Sibgha Nazir <sibgha...@gmail.com> wrote:

> Hey,
>
> I tried what you mentioned. The condition is never satisfied.
>
> *if (event.getPayload() instanceof YourEvent)  *
>
> On Sun, May 26, 2019 at 6:10 PM Francois Meillet <
> francois.meil...@gmail.com>
> wrote:
>
> > Hi Sibgha,
> >
> > // here is a simple code
> >
> > //
> > // in your Dpanel
> > //
> > protected void onUpdate(AjaxRequestTarget target) {
> >     send(getPage(), Broadcast.EXACT, new
> > YourEvent(yourDataFromYourDropDownChoice));
> > }
> >
> >
> > //
> > // in your HomePage, you override the onEvent method
> > //
> > @Override
> > public void onEvent(IEvent<?> event) {
> >     super.onEvent(event);
> >
> >     if (event.getPayload() instanceof YourEvent) {
> >
> >         YourEvent yourEvent = (YourEvent) = event.getPayload();
> >         // the data you sent throw your vent
> >         YourData xyz = yourEvent.getData();
> >         // if you don't neeed anymore your event
> >         event.stop();
> >     }
> > }
> >
> >
> > // look at the docs
> >
> >
> https://ci.apache.org/projects/wicket/guide/8.x/single.html#_wicket_events_infrastructure
> >
> >
> > François
> > follow Apache Wicket on twitter : https://twitter.com/apache_wicket <
> > https://twitter.com/apache_wicket> !
> >
> >
> > > Le 26 mai 2019 à 15:33, Sibgha Nazir <sibgha...@gmail.com> a écrit :
> > >
> > > Hi,
> > >
> > > In my application, Home Page creates DPanel and Dpanel has the drop
> down
> > > menu.   In the class DPanel at 'onchange' event, I want to do some
> action
> > > in the class HomePage.java. How can that be possible?
> > >
> > >
> > > *HomePage.java*    public HomePage(final PageParameters parameters)
> > >    {
> > >        super(parameters);
> > >
> > >        final Panel dropDownPanel = new Dpanel("toReplace");
> > >
> > >        dropDownPanel.setOutputMarkupId(true);
> > >        add(dropDownPanel);
> > >    }
> > >
> > >
> > > *DPanel.java*    public Dpanel(String aId)
> > >    {
> > >        super(aId);
> > >        form = new Form<Void>("form");
> > >        form.setOutputMarkupId(true);
> > >
> > >        // SelectMenu //
> > >        final DropDownChoice<String> dropdown = new
> > > DropDownChoice<String>("select", new Model<String>(), new
> > > ListModel<String>(GENRES));
> > >        dropdown.setRequired(true);
> > >        dropdown.setOutputMarkupId(true);
> > >        dropdown.add(new AjaxFormComponentUpdatingBehavior("change") {
> > >            /**
> > >             *
> > >             */
> > >            private static final long serialVersionUID =
> > > -6744838136235652577L;
> > >
> > >            protected void onUpdate(AjaxRequestTarget target) {
> > >                System.out.println("Changed");
> > >
> > >            }
> > >        });
> > > .
> > > .
> > > .
> > > .
> > >
> > > Quick Start here...
> > > https://github.com/Sibgha360/dropdownexample.git,
> >
> >
>

Reply via email to