Implemented mobile media page

This commit is contained in:
Benjamin Barth committed 2015-08-27 15:04:53 +02:00
1 parent ff77b547b9
commit 4bfcaf3bf7
4 files changed
+115

No files matched your search

@@ -0,0 +1,28 @@
package com.sap.sailing.gwt.home.mobile.places.event.media;
import com.sap.sailing.gwt.home.client.place.event.AbstractEventPlace;
import com.sap.sailing.gwt.home.mobile.app.MobileApplicationClientFactory;
import com.sap.sailing.gwt.home.mobile.places.event.AbstractEventActivity;
import com.sap.sailing.gwt.home.mobile.places.event.EventViewBase;
import com.sap.sailing.gwt.home.mobile.places.event.media.MediaView.Presenter;
import com.sap.sailing.gwt.ui.shared.media.MediaDTO;
public class MediaActivity extends AbstractEventActivity<AbstractEventPlace> implements Presenter {
public MediaActivity(AbstractEventPlace place, MobileApplicationClientFactory clientFactory) {
super(place, clientFactory);
}
@Override
protected EventViewBase initView() {
final MediaView view = new MediaViewImpl(this);
initQuickfinder(view, false);
initMedia(new AsyncMediaCallback() {
@Override
public void onSuccess(MediaDTO result) {
view.setMedia(result.getVideos(), result.getPhotos());
}
});
return view;
}
}
@@ -0,0 +1,17 @@
package com.sap.sailing.gwt.home.mobile.places.event.media;
import java.util.Collection;
import com.sap.sailing.gwt.home.mobile.places.event.EventViewBase;
import com.sap.sailing.gwt.ui.shared.media.SailingImageDTO;
import com.sap.sailing.gwt.ui.shared.media.SailingVideoDTO;
public interface MediaView extends EventViewBase {
void setMedia(Collection<SailingVideoDTO> videos, Collection<SailingImageDTO> images);
public interface Presenter extends EventViewBase.Presenter {
}
}
@@ -0,0 +1,41 @@
package com.sap.sailing.gwt.home.mobile.places.event.media;
import java.util.Collection;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.gwt.home.mobile.partials.imagegallery.ImageGallery;
import com.sap.sailing.gwt.home.mobile.partials.videogallery.VideoGallery;
import com.sap.sailing.gwt.home.mobile.places.event.AbstractEventView;
import com.sap.sailing.gwt.ui.shared.media.SailingImageDTO;
import com.sap.sailing.gwt.ui.shared.media.SailingVideoDTO;
public class MediaViewImpl extends AbstractEventView<MediaView.Presenter> implements MediaView {
private static MediaViewImplUiBinder uiBinder = GWT.create(MediaViewImplUiBinder.class);
interface MediaViewImplUiBinder extends UiBinder<Widget, MediaViewImpl> {
}
@UiField Label noContentInfoUi;
@UiField VideoGallery videoGalleryUi;
@UiField ImageGallery imageGalleryUi;
public MediaViewImpl(MediaView.Presenter presenter) {
super(presenter, false, true);
setViewContent(uiBinder.createAndBindUi(this));
}
@Override
public void setMedia(Collection<SailingVideoDTO> videos, Collection<SailingImageDTO> images) {
noContentInfoUi.setVisible(videos.isEmpty() && images.isEmpty());
videoGalleryUi.setVideos(videos);
videoGalleryUi.setVisible(!videos.isEmpty());
imageGalleryUi.setImages(images);
imageGalleryUi.setVisible(!images.isEmpty());
}
}
@@ -0,0 +1,29 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared" xmlns:mp="urn:import:com.sap.sailing.gwt.home.mobile.partials"
xmlns:p="urn:import:com.sap.sailing.gwt.home.client.place.event.partials">
<ui:with field="i18n" type="com.sap.sailing.gwt.ui.client.StringMessages" />
<ui:with field="res" type="com.sap.sailing.gwt.home.mobile.resources.SharedResources" />
<ui:style>
.pageTitle {
font-size: 1.066666666666667em;
font-weight: 700;
margin: 0.666666666666667em 0;
}
.infoLabel {
padding: 1em;
font-weight: bold;
font-style: italic;
}
</ui:style>
<g:HTMLPanel>
<div class="{res.mediaCss.columns}">
<div class="{res.mediaCss.small12} {style.pageTitle}"><ui:text from="{i18n.impressions}" /></div>
</div>
<g:Label addStyleNames="{style.infoLabel}" ui:field="noContentInfoUi">
<ui:text from="{i18n.mediaNoContent}" />
</g:Label>
<mp:videogallery.VideoGallery visible="false" ui:field="videoGalleryUi" />
<mp:imagegallery.ImageGallery visible="false" ui:field="imageGalleryUi" />
</g:HTMLPanel>
</ui:UiBinder>