Example usage for com.vaadin.client.ui VTextField CLASSNAME_FOCUS

List of usage examples for com.vaadin.client.ui VTextField CLASSNAME_FOCUS

Introduction

In this page you can find the example usage for com.vaadin.client.ui VTextField CLASSNAME_FOCUS.

Prototype

String CLASSNAME_FOCUS

To view the source code for com.vaadin.client.ui VTextField CLASSNAME_FOCUS.

Click Source Link

Usage

From source file:org.vaadin.addons.tuningdatefield.widgetset.client.ui.TuningDateFieldWidget.java

License:Apache License

public TuningDateFieldWidget() {
    setStyleName(CLASSNAME);//from  w ww.j a v  a 2 s.  com
    addStyleName("tuning-datefield");

    dateTextBox = new TextBox();
    dateTextBox.addStyleName("v-textfield");
    dateTextBox.addStyleName(CLASSNAME + "-textfield");
    dateTextBox.addChangeHandler(this);
    dateTextBox.addFocusHandler(new FocusHandler() {
        @Override
        public void onFocus(FocusEvent event) {
            dateTextBox.addStyleName(VTextField.CLASSNAME + "-" + VTextField.CLASSNAME_FOCUS);
            // Show calendar
            if (isEnabled() && openCalendarOnFocusEnabled) {
                openCalendar();
            }
        }
    });
    dateTextBox.addBlurHandler(new BlurHandler() {

        @Override
        public void onBlur(BlurEvent event) {
            dateTextBox.removeStyleName(VTextField.CLASSNAME + "-" + VTextField.CLASSNAME_FOCUS);

        }
    });
    add(dateTextBox);

    calendarToggle.addStyleName("v-datefield-button");
    calendarToggle.setText("");
    calendarToggle.addClickHandler(this);
    calendarToggle.getElement().setTabIndex(-2);

    Roles.getButtonRole().set(calendarToggle.getElement());
    Roles.getButtonRole().setAriaHiddenState(calendarToggle.getElement(), true);
    add(calendarToggle);

    calendar = GWT.create(TuningDateFieldCalendarWidget.class);
    calendar.setFocusOutListener(new FocusOutListener() {
        @Override
        public boolean onFocusOut(DomEvent<?> event) {
            event.preventDefault();
            closeCalendar();
            return true;
        }
    });

    Roles.getTextboxRole().setAriaControlsProperty(dateTextBox.getElement(), Id.of(calendar.getElement()));
    Roles.getButtonRole().setAriaControlsProperty(calendarToggle.getElement(), Id.of(calendar.getElement()));

    popup = new VOverlay(true, false, true);
    popup.setOwner(this);

    popup.setWidget(calendar);
    // When the calendar widget is set we need to update
    // popup position
    calendar.addCalendarAttachedHandler(new CalendarAttachedHandler() {
        @Override
        public void onCalendarAttached(CalendarAttachedEvent event) {
            updatePopupPosition();
        }
    });

    popup.addCloseHandler(this);

    sinkEvents(Event.ONKEYDOWN);

    updateStyleNames();
}