From 38c531695bacbcb54ce3878a489e26d06c66272a Mon Sep 17 00:00:00 2001 From: Benjamin Barth Date: Tue, 1 Sep 2015 10:28:11 +0200 Subject: [PATCH] Integrated mobile fullscreen image gallery into mobile media page --- .../partials/imagegallery/ImageGallery.java | 29 ++++++++++++------- .../partials/imagegallery/ImageGallery.ui.xml | 8 ++--- .../imagegallery/ImageGalleryItem.java | 13 +++++++-- 3 files changed, 34 insertions(+), 16 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGallery.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGallery.java index 3c30c29e154..a6cf64e8ba7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGallery.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGallery.java @@ -3,14 +3,16 @@ package com.sap.sailing.gwt.home.mobile.partials.imagegallery; import java.util.Collection; import com.google.gwt.core.shared.GWT; -import com.google.gwt.dom.client.DivElement; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.FlowPanel; import com.sap.sailing.gwt.home.mobile.partials.section.MobileSection; import com.sap.sailing.gwt.home.mobile.partials.sectionHeader.SectionHeaderContent; import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sse.gwt.client.media.ImageDTO; +import com.sap.sailing.gwt.ui.shared.media.SailingImageDTO; public class ImageGallery extends Composite { @@ -20,8 +22,8 @@ public class ImageGallery extends Composite { } @UiField SectionHeaderContent sectionHeaderUi; - @UiField DivElement firstColumnUi; - @UiField DivElement secondColumnUi; + @UiField FlowPanel firstColumnUi; + @UiField FlowPanel secondColumnUi; private final MobileSection mobileSection; public ImageGallery() { @@ -31,14 +33,21 @@ public class ImageGallery extends Composite { sectionHeaderUi.initCollapsibility(mobileSection.getContentContainerElement(), true); } - public void setImages(Collection images) { + public void setImages(final Collection images) { sectionHeaderUi.setInfoText(StringMessages.INSTANCE.photosCount(images.size())); - firstColumnUi.removeAllChildren(); - secondColumnUi.removeAllChildren(); + firstColumnUi.clear(); + secondColumnUi.clear(); int imageCount = 0; - for (ImageDTO image : images) { - DivElement container = ++imageCount % 2 != 0 ? firstColumnUi : secondColumnUi; - container.appendChild(new ImageGalleryItem(image).getElement()); + for (final SailingImageDTO image : images) { + FlowPanel container = ++imageCount % 2 != 0 ? firstColumnUi : secondColumnUi; + ImageGalleryItem imageGalleryItem = new ImageGalleryItem(image); + imageGalleryItem.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + new MobileFullscreenGallery().show(image, images); + } + }); + container.add(imageGalleryItem); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGallery.ui.xml b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGallery.ui.xml index 395e4274f37..d6a9176f972 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGallery.ui.xml +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGallery.ui.xml @@ -9,10 +9,10 @@ - -
-
-
+ +
+ + \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGalleryItem.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGalleryItem.java index 9c3979acca9..e05cd2ba919 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGalleryItem.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/partials/imagegallery/ImageGalleryItem.java @@ -3,12 +3,16 @@ package com.sap.sailing.gwt.home.mobile.partials.imagegallery; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.ImageElement; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.ui.UIObject; +import com.google.gwt.user.client.ui.Widget; import com.sap.sse.gwt.client.media.ImageDTO; -public class ImageGalleryItem extends UIObject { +public class ImageGalleryItem extends Widget implements HasClickHandlers { private static ImageGalleryItemUiBinder uiBinder = GWT.create(ImageGalleryItemUiBinder.class); @@ -21,5 +25,10 @@ public class ImageGalleryItem extends UIObject { setElement(uiBinder.createAndBindUi(this)); imageUi.setSrc(image.getSourceRef()); } + + @Override + public HandlerRegistration addClickHandler(ClickHandler handler) { + return addDomHandler(handler, ClickEvent.getType()); + } }