GWT: вернуть VerticalPanel из функции в ClickHandler

Я пытаюсь получить всплывающее окно при нажатии на изображение. ниже фрагмент кода:

while(index<bookList.size()){
        if(cellCount<4){
            image[index] = new Image(imageList.get(index));
            final int imageIndex = index;
            table.setWidget(row, cellCount, new Image(bookList.get(index)));
            table.addClickHandler(new ClickHandler(){

                @Override
                public void onClick(ClickEvent event) {
                    VerticalPanel vPanel = new VerticalPanel();
                    vPanel = imageDetail.getPopup(popup, image[imageIndex]);
                    popup.setAnimationEnabled(true);
                    popup.setGlassEnabled(true);
                    popup.setAutoHideEnabled(false);
                    popup.setWidth("300px");
                    popup.setHeight("300px");
                    popup.add(vPanel);
                    popup.center();
                }});
            table.getFlexCellFormatter().setStyleName(row, cellCount, "ImageCell");
            cellCount++;
            index++;
        }

Выше код содержит clickhandler, который вызывает "getPopup" объекта imageDetail. Функция "getPopup" возвращает вертикальную панель, которая добавляется в PopupPanel. Класс ImageDetail выглядит следующим образом

public class ImageDetails extends Composite {
private Image closeButton;

VerticalPanel getPopup(final PopupPanel popup, Image image){
    VerticalPanel vPanel = new VerticalPanel();

    //Close Button
    HorizontalPanel closePanel = new HorizontalPanel();
    closeButton = new Image("/Images/closebutton.jpg");
    closeButton.addClickHandler(new ClickHandler(){

        @Override
        public void onClick(ClickEvent event) {
            // TODO Auto-generated method stub
            popup.hide();

        }});
    closePanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
    closePanel.add(closeButton);
    vPanel.add(closePanel);

    VerticalPanel imagePanel = new VerticalPanel();
    imagePanel.add(image);
    vPanel.add(imagePanel);

    return vPanel;

}

Мои вопросы следующие: 1) Можно ли вернуть панели из функции? Если нет, то почему? Если да, то почему приведенный выше код выдает "Неизвестное исключенное исключение com.google.gwt.event.shared.UmbrellaException: обнаружены 3 исключения: нуль; ноль; ноль"?

2) Когда я пытаюсь добавить вертикальную панель к всплывающей панели в функции "getPopup" и получаю оттуда всплывающую панель, код возвращает ту же ошибку, что и в первом вопросе. Что мне не хватает?

Я пропускаю какой-либо вызов функции initWidget(w)?

Спасибо

0 ответов

Другие вопросы по тегам