genirahul
genirahul

Reputation: 429

GWT : Return VerticalPanel from a function in ClickHandler

I am trying to get a pop up when an image is clicked. below is the piece of code:

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++;
        }

Above code contain clickhandler which calls "getPopup" of imageDetail object. "getPopup" function returns a vertical Panel which is added to PopupPanel. ImageDetail class is as follows

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;

}

My questions are as following : 1) Is it ok to return panels from a function? If no, then why? If yes, why above code gives "Uncaught exception escaped com.google.gwt.event.shared.UmbrellaException: 3 exceptions caught: null; null; null"?

2) When i try to add vertical panel to popup panel in "getPopup" function and get popup panel from there, code returning same error as mentioned in first question. What am I missing?

Am i missing any initWidget(w) function call?

Thank you

Upvotes: 0

Views: 76

Answers (0)

Related Questions