Example usage for com.google.gwt.event.logical.shared AttachEvent.Handler AttachEvent.Handler

List of usage examples for com.google.gwt.event.logical.shared AttachEvent.Handler AttachEvent.Handler

Introduction

In this page you can find the example usage for com.google.gwt.event.logical.shared AttachEvent.Handler AttachEvent.Handler.

Prototype

AttachEvent.Handler

Source Link

Usage

From source file:com.github.gwt.user.client.ui.DateTimePickerPanel.java

License:Apache License

/**
 * Binds next, back events. Syncs pager text with state value of grid.
 *//*from   www . j a  v  a2s . c om*/
private void bindPagerAndGrid() {

    pager.addAttachHandler(new AttachEvent.Handler() {
        @Override
        public void onAttachOrDetach(final AttachEvent event) {
            if (getFormatStrategy() != null) {
                String headerString = getFormatStrategy().format(grid.getStateValue());
                pager.setText(headerString);
            }
        }
    });

    grid.addStateChangedHandler(new StateChangedEvent.Handler<Date>() {
        @Override
        public void onEvent(final StateChangedEvent<Date> event) {
            if (getFormatStrategy() != null) {
                String headerString = getFormatStrategy().format(grid.getStateValue());
                pager.setText(headerString);
            }
        }
    });

    pager.addNextHandler(new NextEvent.Handler() {
        @Override
        public void onEvent(final NextEvent event) {
            delegateEvent(grid.asWidget(), event);
        }
    });

    addNextHandler(new NextEvent.Handler() {
        @Override
        public void onEvent(final NextEvent event) {
            delegateEvent(pager, event);
        }
    });

    pager.addBackHandler(new BackEvent.Handler() {
        @Override
        public void onEvent(final BackEvent event) {
            delegateEvent(grid.asWidget(), event);
        }
    });

    addBackHandler(new BackEvent.Handler() {
        @Override
        public void onEvent(final BackEvent event) {
            delegateEvent(pager, event);
        }
    });

    pager.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            ShiftUpEvent.fire(DateTimePickerPanel.this, grid.getStateValue());
        }
    });

    grid.addSelectionHandler(new SelectionHandler<Date>() {
        private Date previousSelected;

        @Override
        public void onSelection(SelectionEvent<Date> event) {
            Date selectedItem = event.getSelectedItem();

            if (secondClickToDrill) {
                if (selectedItem != null && selectedItem.equals(previousSelected)) {
                    DrillDownEvent.fire(DateTimePickerPanel.this, grid.getStateValue());
                }
            } else {
                DrillDownEvent.fire(DateTimePickerPanel.this, grid.getStateValue());
            }
            previousSelected = selectedItem;
        }
    });
}