mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-28 14:57:12 +00:00
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:
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;
|
||||
}
|
||||
|
||||
}
|
||||
+53
-6
@@ -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;
|
||||
}
|
||||
Reference in new issue
Block a user