private SelectionBox<IntItem> createMonthSelect() {
        final SelectionBox<IntItem> monthListBox = new SelectionBox<>();

        for (int i = 0; i < DateTimeModel.MONTHS_IN_YEAR; i++) {
            monthListBox.addItem(new IntItem(getModel().formatMonth(i), i));
        }

        monthListBox.addValueChangeHandler(e -> {
            int previousMonth = getModel().getCurrentMonth().getMonth();
            int newMonth = monthListBox.getValue().getValue();
            int delta = newMonth - previousMonth;
            addMonths(delta);
        });
        monthListBox.addDomHandler(e -> {
            if (KeyCodes.KEY_LEFT == e.getNativeKeyCode()) {
                addMonths(-1);
            } else if (KeyCodes.KEY_RIGHT == e.getNativeKeyCode()) {
                addMonths(1);
            }
        }, KeyDownEvent.getType());

        return monthListBox;
    }
Returns the ListBox for selecting the year
stroom-core-client-widget/src/main/java/stroom/widget/datepicker/client/DefaultMonthSelector.java