Event-bussen

Klassene i event-bussen er viktig hvis du vil at plugin-en skal reagere på spesielle hendelser i Opinio. For eksempel, når en respondent har gjort seg ferdig med en undersøkelse vil du at noe skal skje med dataene (som å sende en e-post). For å vite når respondenten er ferdig, trenger du å motta en beskjed om hendelsen.

For å motta denne beskjeden må plugin-en registrere seg selv på event-bussen. Det er flere busstyper og mange hendelsestyper på hver buss. Se com.objectplanet.survey.event.EventBusManager i plugin-dokumentasjonen.

Eksempler på busstyper:

Det er mange addListener(**)-metoder i EventBusManager. Du kan registrere for å lytte på:

VIKTIG: Prøv å registrere hendelser på så lavt nivå som mulig for å maksimere ytelsen.

Eksempel 1. Plugin-eksempel

Implementer interfacet com.objectplanet.survey.event.IEventListener.

I start()-metoden på plugin-en kan du registrere at den skal lytte på hendelser i administrasjonsmodulen:

        public void start() {
                EventBusManager eventMgr = EventBusManager.instance();
                eventMgr.addListener(this, EventBusManager.BUS_TYPE_SURVEY_MANAGEMENT, EventBusManager. EVENT_TYPE_NEW_SURVEY);
        }
                                        

Implementer metoden handleEvent() fra interfacet IEventListener, slik at hendelsene håndteres korrekt. For eksempel:

        public void handleEvent(PluginBusEvent event) {
                if (event instanceof NewSurveyEvent) {
                        NewSurveyEvent nsEvent = (NewSurveyEvent) event;
                        long surveyId = nsEvent.getSurveyId();

                        // Do something with the survey; send an email,
                        //  call an external system etc.

                        ....

                }
        }