Added partials for mobile image gallery

This commit is contained in:
Benjamin Barth committed 2015-08-27 11:28:50 +02:00
1 parent e12c78adc7
commit c440b26365
6 files changed
+158

No files matched your search

@@ -0,0 +1,25 @@
/**
* An image gallery
*/
.imagegallery {
font-size: 1rem;
}
.imagegallery_column {
padding: 0;
margin: 0;
}
.imagegallery_columnfirst {
padding-right: 0.333333333333333em;
}
.imagegallery_columnsecond {
padding-left: 0.333333333333333em;
}
.imagegallery_column_item {
cursor: pointer;
margin-bottom: 0.666666666666667em;
}
.imagegallery_column_item img {
width: 100%;
height: auto;
vertical-align: bottom;
}
@@ -0,0 +1,60 @@
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.dom.client.Style.FontStyle;
import com.google.gwt.dom.client.Style.FontWeight;
import com.google.gwt.dom.client.Style.Unit;
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.Label;
import com.google.gwt.user.client.ui.Widget;
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;
public class ImageGallery extends Composite {
private static ImageGalleryUiBinder uiBinder = GWT.create(ImageGalleryUiBinder.class);
interface ImageGalleryUiBinder extends UiBinder<MobileSection, ImageGallery> {
}
@UiField SectionHeaderContent sectionHeaderUi;
@UiField DivElement firstColumnUi;
@UiField DivElement secondColumnUi;
private final MobileSection mobileSection;
public ImageGallery() {
ImageGalleryResources.INSTANCE.css().ensureInjected();
initWidget(mobileSection = uiBinder.createAndBindUi(this));
sectionHeaderUi.setSectionTitle(StringMessages.INSTANCE.images());
}
public void setImages(Collection<ImageDTO> images) {
sectionHeaderUi.setInfoText(StringMessages.INSTANCE.imagesCount(images.size()));
mobileSection.clearContent();
if (images.isEmpty()) {
mobileSection.addContent(getNoImagesInfoWidget());
} else {
int imageCount = 0;
for (ImageDTO image : images) {
DivElement container = ++imageCount % 2 != 0 ? firstColumnUi : secondColumnUi;
container.appendChild(new ImageGalleryItem(image).getElement());
}
}
}
private Widget getNoImagesInfoWidget() {
Label label = new Label(StringMessages.INSTANCE.noImages());
label.getElement().getStyle().setPadding(1, Unit.EM);
label.getElement().getStyle().setFontWeight(FontWeight.BOLD);
label.getElement().getStyle().setFontStyle(FontStyle.ITALIC);
return label;
}
}
@@ -0,0 +1,18 @@
<!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:mp="urn:import:com.sap.sailing.gwt.home.mobile.partials" xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared">
<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:with field="local_res" type="com.sap.sailing.gwt.home.mobile.partials.imagegallery.ImageGalleryResources" />
<mp:section.MobileSection addStyleNames="{local_res.css.imagegallery}">
<mp:header>
<mp:sectionHeader.SectionHeaderContent ui:field="sectionHeaderUi" />
</mp:header>
<mp:content>
<g:HTMLPanel>
<div class="{res.mediaCss.small6} {res.mediaCss.columns} {local_res.css.imagegallery_column} {local_res.css.imagegallery_columnfirst}" ui:field="firstColumnUi"></div>
<div class="{res.mediaCss.small6} {res.mediaCss.columns} {local_res.css.imagegallery_column} {local_res.css.imagegallery_columnsecond}" ui:field="secondColumnUi"></div>
</g:HTMLPanel>
</mp:content>
</mp:section.MobileSection>
</ui:UiBinder>
@@ -0,0 +1,25 @@
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.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.UIObject;
import com.sap.sse.gwt.client.media.ImageDTO;
public class ImageGalleryItem extends UIObject {
private static ImageGalleryItemUiBinder uiBinder = GWT.create(ImageGalleryItemUiBinder.class);
interface ImageGalleryItemUiBinder extends UiBinder<Element, ImageGalleryItem> {
}
@UiField ImageElement imageUi;
public ImageGalleryItem(ImageDTO image) {
setElement(uiBinder.createAndBindUi(this));
imageUi.setSrc(image.getSourceRef());
}
}
@@ -0,0 +1,10 @@
<!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:mp="urn:import:com.sap.sailing.gwt.home.mobile.partials" xmlns:s="urn:import:com.sap.sailing.gwt.home.client.shared">
<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:with field="local_res" type="com.sap.sailing.gwt.home.mobile.partials.imagegallery.ImageGalleryResources" />
<div class="{local_res.css.imagegallery_column_item}">
<img ui:field="imageUi"/>
</div>
</ui:UiBinder>
@@ -0,0 +1,20 @@
package com.sap.sailing.gwt.home.mobile.partials.imagegallery;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
public interface ImageGalleryResources extends ClientBundle {
public static final ImageGalleryResources INSTANCE = GWT.create(ImageGalleryResources.class);
@Source("ImageGallery.gss")
LocalCss css();
public interface LocalCss extends CssResource {
String imagegallery();
String imagegallery_column();
String imagegallery_columnfirst();
String imagegallery_columnsecond();
String imagegallery_column_item();
}
}