Um mit einem Eventlistener zu arbeiten, habe ich einmal ein Vaadin7-Projekt angelegt, ich habe die guava10.0-jar in das WEB-INF/lib - Verzeichnis gesetzt. Ich wollte einmal mit der folgenden Anwendung ausprobieren, ob der Eventlistener auch geht, aber wenn ich klicje, dann passiert nichts, dabei wollte ich durch den Eventlistener eine Notification auslösen, ich habe keine Ahnung, was da falsch sein könnte:
Gleichwohl ich schon herumgefragt habe, konnte niemand bislang eine Antwort geben
Code:
package com.example.v7scratch; import javax.servlet.annotation.WebServlet; import com.google.gwt.thirdparty.guava.common.eventbus.Subscribe; import com.vaadin.annotations.Theme; import com.vaadin.annotations.VaadinServletConfiguration; import com.vaadin.server.VaadinRequest; import com.vaadin.server.VaadinServlet; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Label; import com.vaadin.ui.Notification; import com.vaadin.ui.UI; import com.vaadin.ui.VerticalLayout; import dispatch.EventBroadcastEvent; import dispatch.EventBusFactory; @SuppressWarnings("serial") @Theme("v7scratch") public class V7scratchUI extends UI { @WebServlet(value = "/*", asyncSupported = true) @VaadinServletConfiguration(productionMode = false, ui = V7scratchUI.class) public static class Servlet extends VaadinServlet { } private void write(String towrite){ EventBroadcastEvent ebe = new EventBroadcastEvent(); ebe.setMsg(towrite); EventBusFactory.getEventBusInstance().post(ebe); } @Subscribe public void readIncomingMessages(EventBroadcastEvent ebe){ Notification.show("The following msg has been received.:" + " " + ebe.getMsg()); } @Override protected void init(VaadinRequest request) { EventBusFactory.getEventBusInstance().register(this); write("1"+":"+(String) UI.getCurrent().getSession().getAttribute("currentUser")+"\n"); final VerticalLayout layout = new VerticalLayout(); layout.setMargin(true); setContent(layout); Button button = new Button("Click Me"); button.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { layout.addComponent(new Label("Thank you for clicking")); write(">>YOUR MESSAGE<<"); } }); layout.addComponent(button); } }