Skip to content

Instantly share code, notes, and snippets.

@bduisenov
Created February 26, 2014 05:55
Show Gist options
  • Save bduisenov/9224311 to your computer and use it in GitHub Desktop.
Save bduisenov/9224311 to your computer and use it in GitHub Desktop.
vaadin and guava eventBus example
/*
* Copyright 2009 IT Mill Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package your.company;
import com.google.common.base.Function;
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
import com.vaadin.Application;
import com.vaadin.ui.Button;
import com.vaadin.ui.Label;
import com.vaadin.ui.Window;
/**
* The Application's "main" class
*/
@SuppressWarnings("serial")
public class VaadinEventBusApplication extends Application {
private EventBus eventBus = new EventBus();
private Label label = new Label();
public class MyEvent {}
public VaadinEventBusApplication() {
eventBus.register(new Function<MyEvent, Void>() {
@Subscribe public Void apply(MyEvent event) {
label.setValue("text from eventBus");
return null;
}
});
}
private Window window;
@Override
public void init() {
window = new Window("My Vaadin Application");
setMainWindow(window);
Button button = new Button("Click Me");
button.addListener(new Button.ClickListener() {
public void buttonClick(Button.ClickEvent event) {
eventBus.post(new MyEvent());
}
});
window.addComponent(label);
window.addComponent(button);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment