Merge branch 'master' into bug1018

Conflicts:
	java/com.sap.sailing.gwt.ui/SailingGWT sdm.launch
	java/com.sap.sailing.gwt.ui/SailingGWT.launch
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_cn.properties
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties
This commit is contained in:
Axel Uhl committed 2015-05-30 06:41:22 +02:00
commit 4365699ea6
330 files changed
+39242 -4924

No files matched your search

@@ -0,0 +1,16 @@
package com.sap.sse.gwt.client;
import com.google.gwt.i18n.client.impl.plurals.DefaultRule;
public class DefaultRule_0_1_n extends DefaultRule {
@Override
public PluralForm[] pluralForms() {
return com.google.gwt.i18n.client.impl.plurals.DefaultRule_0_1_n.pluralForms();
}
@Override
public int select(int n) {
return com.google.gwt.i18n.client.impl.plurals.DefaultRule_0_1_n.select(n);
}
}
@@ -1,26 +1,26 @@
package com.sap.sse.gwt.client;
import com.google.gwt.http.client.URL;
/**
* A very basic URL encoder that also works in a GWT environment where <code>java.net.URLEncoder</code> is not available.
* It is based on {@link URL#encode(String)} and adds encoding for the backslash (\) character.
*
* @author Axel Uhl (D043530)
*
*/
public class URLEncoder {
private URLEncoder() { }
private final static char[] charsToReplace = { '\'', '(', ')', '"', '[', ']', '{', '}', '<', '>', '|' };
public static String encode(String url) {
String nearlyEncoded = URL.encode(url);
for (char c : charsToReplace) {
nearlyEncoded = nearlyEncoded.replaceAll("\\" + Character.toString(c), "%" + Integer.toHexString(c));
}
return nearlyEncoded;
}
}
package com.sap.sse.gwt.client;
import com.google.gwt.http.client.URL;
/**
* A very basic URL encoder that also works in a GWT environment where <code>java.net.URLEncoder</code> is not available.
* It is based on {@link URL#encode(String)} and adds encoding for the backslash (\) character.
*
* @author Axel Uhl (D043530)
*
*/
public class URLEncoder {
private URLEncoder() { }
private final static char[] charsToReplace = { '\'', '(', ')', '"', '[', ']', '{', '}', '<', '>', '|', '+' };
public static String encode(String url) {
String nearlyEncoded = URL.encode(url);
for (char c : charsToReplace) {
nearlyEncoded = nearlyEncoded.replaceAll("\\" + Character.toString(c), "%" + Integer.toHexString(c));
}
return nearlyEncoded;
}
}
@@ -1,5 +1,8 @@
package com.sap.sse.gwt.client.controls.carousel;
import java.util.LinkedList;
import java.util.List;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.dom.client.DivElement;
@@ -11,6 +14,7 @@ import com.google.gwt.safehtml.shared.UriUtils;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sse.common.media.ImageMetadataDTO;
/**
* Image carousel that uses the open source "slick carousel".
@@ -48,10 +52,11 @@ import com.google.gwt.user.client.ui.Widget;
*
* Created by pgtaboada on 10.11.14.
*/
public class ImageCarousel extends Widget {
public class ImageCarousel<TYPE extends ImageMetadataDTO> extends Widget {
private static SlickSliderUiBinder ourUiBinder = GWT.create(SlickSliderUiBinder.class);
private LinkedList<TYPE> currentImages = new LinkedList<>();
/**
* slick slider property: dots
*/
@@ -81,9 +86,12 @@ public class ImageCarousel extends Widget {
* The height of the images
*/
private int imagesHeight = 300;
private int currentSlideIndex = 0;
private final String uniqueId;
private FullscreenViewer<TYPE> fsViewer;
/**
* Widget constructor
*/
@@ -95,12 +103,38 @@ public class ImageCarousel extends Widget {
init();
}
public void onClick() {
GWT.log("Current slide: " + currentSlideIndex);
if (fsViewer != null) {
fsViewer.show(currentImages.get(currentSlideIndex), currentImages);
}
}
/**
* JSNI wrapper that does setup the slider
*
* @param uniqueId
*/
native void setupSlider(ImageCarousel sliderReference) /*-{
native void setupSlider(ImageCarousel<?> sliderReference) /*-{
var slider = $wnd
.$('.'
+ (sliderReference.@com.sap.sse.gwt.client.controls.carousel.ImageCarousel::uniqueId));
slider
.on(
'click',
'.slick-slide',
function() {
sliderReference.@com.sap.sse.gwt.client.controls.carousel.ImageCarousel::onClick()();
});
slider
.on(
'afterChange',
function(event, index) {
sliderReference.@com.sap.sse.gwt.client.controls.carousel.ImageCarousel::currentSlideIndex = index.currentSlide;
});
$wnd
.$(
@@ -136,8 +170,12 @@ public class ImageCarousel extends Widget {
*
* @param url
*/
public void addImage(String url, int height, int width) {
public void addImage(TYPE image) {
currentImages.add(image);
String url = image.getSourceRef();
int height = image.getHeightInPx();
int width = image.getWidthInPx();
DivElement imageHolder = Document.get().createDivElement();
ImageElement imageElement = Document.get().createImageElement();
imageElement.setAttribute("data-lazy", UriUtils.fromString(url).asString());
@@ -209,7 +247,7 @@ public class ImageCarousel extends Widget {
/**
* UiBinder interface
*/
interface SlickSliderUiBinder extends UiBinder<DivElement, ImageCarousel> {
interface SlickSliderUiBinder extends UiBinder<DivElement, ImageCarousel<?>> {
}
/**
@@ -242,7 +280,7 @@ public class ImageCarousel extends Widget {
* Apply slick js to constructed dom tree.
*/
private void init() {
final ImageCarousel reference = this;
final ImageCarousel<TYPE> reference = this;
Scheduler.get().scheduleDeferred(new Command() {
@@ -265,4 +303,13 @@ public class ImageCarousel extends Widget {
});
}
public void registerFullscreenViewer(FullscreenViewer<TYPE> fsViewer) {
this.fsViewer = fsViewer;
}
public interface FullscreenViewer<TYPE> {
public void show(TYPE selectedImage, List<TYPE> imageList);
}
}
@@ -1,87 +1,90 @@
.gwt-SliderBar-shell {
width: 100%;
height: 50px;
}
.gwt-SliderBar-shell .gwt-SliderBar-line {
background: #333;
height: 12px;
width: 100%;
top: 18px;
overflow: hidden;
}
.gwt-SliderBar-shell .gwt-SliderBar-line-disabled {
border: 1px solid gray;
}
.gwt-SliderBar-shell .gwt-SliderBar-knob {
z-index: 1;
cursor: pointer;
top: 7px;
}
.gwt-SliderBar-shell .gwt-SliderBar-tick {
top: 13px;
width: 2px;
height: 5px;
background: #333;
overflow: hidden;
}
.gwt-SliderBar-shell:focus{
outline: none;
}
.gwt-SliderBar-shell .gwt-SliderBar-mark {
top: 13px;
width: 24px;
height: 24px;
background: #fcbb22;
overflow: hidden;
border-radius: 15px;
}
.gwt-SliderBar-shell .gwt-SliderBar-mark-tooClose {
top: 12px;
width: 16px;
height: 16px;
background: #fcbb22;
overflow: hidden;
border-radius: 15px;
}
.gwt-SliderBar-shell .gwt-SliderBar-tick-disabled {
background: gray;
}
.gwt-SliderBar-shell .gwt-SliderBar-ticklabel {
font-size: 12px;
cursor: default;
font-family: 'OpenSansSemiBold',Arial,Verdana,sans-serif;
top: 0;
}
.gwt-SliderBar-shell .gwt-SliderBar-markerlabel {
top: 20px;
font-size: 12px;
color: #333;
cursor: default;
font-family: 'OpenSansSemiBold',Arial,Verdana,sans-serif;
}
.gwt-SliderBar-shell .gwt-SliderBar-markerlabel-tooClose {
top: 13px;
font-size: 8px;
color: #333;
cursor: default;
font-family: 'OpenSansSemiBold',Arial,Verdana,sans-serif;
}
.gwt-SliderBar-shell-focused {
}
.gwt-SliderBar-shell .gwt-SliderBar-line-sliding {
cursor: pointer;
}
.gwt-SliderBar-shell {
width: 100%;
height: 50px;
}
.gwt-SliderBar-shell .gwt-SliderBar-line {
background: #333;
height: 12px;
width: 100%;
top: 18px;
overflow: hidden;
}
.gwt-SliderBar-shell .gwt-SliderBar-line-disabled {
border: 1px solid gray;
}
.gwt-SliderBar-shell .gwt-SliderBar-knob {
z-index: 1;
cursor: pointer;
top: 7px;
}
.gwt-SliderBar-shell .gwt-SliderBar-tick {
top: 13px;
width: 2px;
height: 5px;
background: #333;
overflow: hidden;
}
.gwt-SliderBar-shell:focus{
outline: none;
}
.gwt-SliderBar-shell .gwt-SliderBar-mark {
top: 13px;
width: 24px;
height: 24px;
background: #fcbb22;
overflow: hidden;
border-radius: 15px;
}
.gwt-SliderBar-shell .gwt-SliderBar-mark-tooClose {
top: 12px;
width: 16px;
height: 16px;
background: #fcbb22;
overflow: hidden;
border-radius: 15px;
}
.gwt-SliderBar-shell .gwt-SliderBar-tick-disabled {
background: gray;
}
.gwt-SliderBar-shell .gwt-SliderBar-ticklabel {
font-size: 12px;
cursor: default;
font-family: 'Open Sans',Arial,Verdana,sans-serif;
font-weight: 600;
top: 0;
}
.gwt-SliderBar-shell .gwt-SliderBar-markerlabel {
top: 20px;
font-size: 12px;
color: #333;
cursor: default;
font-family: 'Open Sans',Arial,Verdana,sans-serif;
font-weight: 600;
}
.gwt-SliderBar-shell .gwt-SliderBar-markerlabel-tooClose {
top: 13px;
font-size: 8px;
color: #333;
cursor: default;
font-family: 'Open Sans',Arial,Verdana,sans-serif;
font-weight: 600;
}
.gwt-SliderBar-shell-focused {
}
.gwt-SliderBar-shell .gwt-SliderBar-line-sliding {
cursor: pointer;
}