package com.vaadin.tests.components; import java.util.Date; import com.vaadin.event.FieldEvents.BlurEvent; import com.vaadin.event.FieldEvents.BlurListener; import com.vaadin.event.FieldEvents.FocusEvent; import com.vaadin.event.FieldEvents.FocusListener; import com.vaadin.ui.AbstractDateField; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.CheckBox; import com.vaadin.ui.ComboBox; import com.vaadin.ui.Label; import com.vaadin.ui.Layout; import com.vaadin.ui.NativeButton; import com.vaadin.ui.TextField; import com.vaadin.ui.VerticalLayout; import com.vaadin.v7.ui.OptionGroup; public class FocusAndBlurListeners extends TestBase { private FocusListener focusListener = new FocusListener() { @Override public void focus(FocusEvent event) { Label msg = new Label(new Date() + " Focused " + event.getComponent().getCaption()); messages.addComponentAsFirst(msg); } }; private BlurListener blurListener = new BlurListener() { @Override public void blur(BlurEvent event) { Label msg = new Label(new Date() + " Blurred " + event.getComponent().getCaption()); messages.addComponentAsFirst(msg); } }; private VerticalLayout messages = new VerticalLayout(); @Override protected void setup() { Layout l = getLayout(); TextField tf = new TextField("TextField"); l.addComponent(tf); AbstractDateField<?, ?> df = new TestDateField("DateField"); l.addComponent(df); ComboBox cb = new ComboBox("ComboBox"); l.addComponent(cb); Button btn = new Button("Button"); l.addComponent(btn); NativeButton nbtn = new NativeButton("NativeButton"); l.addComponent(nbtn); CheckBox chkb = new CheckBox("CheckBox"); l.addComponent(chkb); OptionGroup og = createOptionGroup("OptionGroup"); og.setMultiSelect(false); l.addComponent(og); final OptionGroup ogm = createOptionGroup("OptionGroup (multiselect)"); ogm.setMultiSelect(true); l.addComponent(ogm); btn.addClickListener(new ClickListener() { private int i; @Override public void buttonClick(ClickEvent event) { ogm.addItem("newItem" + i++); } }); tf.addFocusListener(focusListener); tf.addBlurListener(blurListener); df.addFocusListener(focusListener); df.addBlurListener(blurListener); cb.addFocusListener(focusListener); cb.addBlurListener(blurListener); btn.addFocusListener(focusListener); btn.addBlurListener(blurListener); nbtn.addFocusListener(focusListener); nbtn.addBlurListener(blurListener); chkb.addFocusListener(focusListener); chkb.addBlurListener(blurListener); og.addFocusListener(focusListener); og.addBlurListener(blurListener); ogm.addFocusListener(focusListener); ogm.addBlurListener(blurListener); l.addComponent(messages); } private OptionGroup createOptionGroup(String caption) { OptionGroup og = new OptionGroup(caption); og.addItem("Option 0"); og.addItem("Option 1"); og.addItem("Option 2"); return og; } @Override protected String getDescription() { return "Testing blur and focus listeners added in 6.2"; } @Override protected Integer getTicketNumber() { return null; } }