Использование GWT Я показываю миниатюру изображения с помощью ClickHandler, который затем показывает полное изображение (может быть несколько МБ) в центрированной PopupPanel. Чтобы центрировать его, изображение должно быть загружено перед показом всплывающего окна, в противном случае верхний левый угол изображения помещается в середину экрана (изображение думает, что оно имеет размер 1px). Это код, который я использую для этого:
private void showImagePopup() {
final PopupPanel popupImage = new PopupPanel();
popupImage.setAutoHideEnabled(true);
popupImage.setStyleName("popupImage"); /* Make image fill 90% of screen */
final Image image = new Image();
image.addLoadHandler(new LoadHandler() {
@Override
public void onLoad(LoadEvent event) {
popupImage.add(image);
popupImage.center();
}
});
image.setUrl(attachmentUrl + CFeedPostAttachment.ATTACHMENT_FILE);
Image.prefetch(attachmentUrl + CFeedPostAttachment.ATTACHMENT_FILE);
}
Однако событие LoadEvent
никогда не запускается, и, следовательно, изображение никогда не показывается. Как я могу преодолеть это? Я хочу избежать использования http://code.google.com/p/gwt-image-loader/, потому что я не хочу добавлять дополнительные библиотеки, если вообще могу этого избежать. Спасибо.