123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- package com.vaadin.tests;
-
- import java.util.HashMap;
- import java.util.Map;
-
- import com.vaadin.ui.Button;
- import com.vaadin.ui.Button.ClickEvent;
- import com.vaadin.ui.Label;
- import com.vaadin.ui.LegacyWindow;
- import com.vaadin.v7.data.Container.ItemSetChangeEvent;
- import com.vaadin.v7.data.Container.ItemSetChangeListener;
- import com.vaadin.v7.data.Container.PropertySetChangeEvent;
- import com.vaadin.v7.data.Container.PropertySetChangeListener;
- import com.vaadin.v7.data.Item;
- import com.vaadin.v7.data.Property.ValueChangeEvent;
- import com.vaadin.v7.data.Property.ValueChangeListener;
- import com.vaadin.v7.ui.Select;
-
- public class ListenerOrder extends com.vaadin.server.LegacyApplication
- implements Button.ClickListener, PropertySetChangeListener,
- ItemSetChangeListener, ValueChangeListener {
-
- Button b1;
-
- Select s1;
-
- Map<String, Integer> buttonListeners = new HashMap<>();
-
- @Override
- public void init() {
- createNewView();
- }
-
- public void createNewView() {
- final LegacyWindow main = new LegacyWindow("Test window");
- setMainWindow(main);
-
- main.removeAllComponents();
- main.addComponent(new Label("Testing multiple listeners."));
-
- //
- // Button listeners
- //
- b1 = new Button("Button 1");
- main.addComponent(b1);
-
- MyClickListener mutualListener = new MyClickListener("mutual1");
-
- addListeners(b1, 1);
- b1.addClickListener(mutualListener);
- b1.addClickListener(mutualListener);
- b1.addClickListener(this);
- b1.addClickListener(mutualListener);
- Button.ClickListener b1Listener = addListeners(b1, 3);
- b1.addClickListener(mutualListener);
- b1.addClickListener(this);
- // b1.addListener((ValueChangeListener) this);
- b1.addClickListener(mutualListener);
- b1.removeClickListener(b1Listener);
- // remove non-existing listener
- b1.removeClickListener(event -> {
- });
-
- //
- // Select listeners
- //
- s1 = new Select("Select 1");
- main.addComponent(s1);
- s1.setImmediate(true);
- s1.setNewItemsAllowed(true);
-
- s1.addItem("first");
- s1.addItem("first");
- s1.addItem("first");
- s1.addItem("second");
- s1.addItem("third");
- s1.addItem("fourth");
- s1.addListener((ValueChangeListener) this);
- s1.addListener((PropertySetChangeListener) this);
- s1.addListener((ItemSetChangeListener) this);
- s1.addListener((ItemSetChangeListener) this);
- s1.addListener((PropertySetChangeListener) this);
- s1.addListener((PropertySetChangeListener) this);
- s1.addListener((ItemSetChangeListener) this);
- s1.addListener((ValueChangeListener) this);
- s1.addListener((ValueChangeListener) this);
-
- Item i = s1.getItem("second");
- for (Object id : i.getItemPropertyIds()) {
- System.out.println("[" + id + "]");
- }
-
- }
-
- private Button.ClickListener addListeners(Button b, int count) {
- String name = b.getCaption();
- // System.out.println("Adding listener for " + name);
- Button.ClickListener listener = null;
- for (int i = 0; i < count; i++) {
- listener = new MyClickListener(name);
- b.addClickListener(listener);
- }
- // return last listener added
- return listener;
- }
-
- @Override
- public void buttonClick(ClickEvent event) {
- System.out.println("ClickEvent from Test1");
- s1.addItem("new item " + System.currentTimeMillis());
- }
-
- public class MyClickListener implements Button.ClickListener {
- String name = "";
- int count = 0;
-
- public MyClickListener(String name) {
- Integer count = null;
- try {
- count = buttonListeners.get(name);
- count = new Integer(count.intValue() + 1);
- buttonListeners.put(name, count);
- } catch (Exception e) {
- count = new Integer(1);
- buttonListeners.put(name, count);
- }
-
- this.name = name;
- this.count = count.intValue();
-
- System.out.println("Created listener " + name + ", id=" + count);
- }
-
- @Override
- public void buttonClick(ClickEvent event) {
- String msg = "ClickEvent from MyClickListener " + name + ", id="
- + count;
- System.out.println(msg);
- getMainWindow().showNotification(msg);
- }
-
- }
-
- @Override
- public void containerPropertySetChange(PropertySetChangeEvent event) {
- String msg = "containerPropertySetChange from " + this;
- System.out.println(msg);
- getMainWindow().showNotification(msg);
- }
-
- @Override
- public void containerItemSetChange(ItemSetChangeEvent event) {
- String msg = "containerItemSetChange from " + this;
- System.out.println(msg);
- getMainWindow().showNotification(msg);
- }
-
- @Override
- public void valueChange(ValueChangeEvent event) {
- String msg = "valueChange from " + this;
- System.out.println(msg);
- getMainWindow().showNotification(msg);
- }
-
- }
|