geoportal-data-viewer-app/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/gallery/ImagesGallery.java

93 lines
2.7 KiB
Java

package org.gcube.portlets.user.geoportaldataviewer.client.ui.gallery;
import java.util.List;
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.WorkspaceContentDV;
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.user.client.ui.HTMLPanel;
public class ImagesGallery {
HTMLPanel galleryPanel = new HTMLPanel("<div id='nanogallery'></div>");
private List<UploadedImageDV> listImages;
private native void showGallery(JavaScriptObject json_array_images) /*-{
console.log("showing: " + json_array_images)
var waitForJQuery = setInterval(
function() {
if (typeof $wnd.$ != 'undefined') {
$wnd
.$("#nanogallery")
.nanogallery2(
{
thumbnailHeight : '200',
thumbnailWidth : 'auto',
thumbnailAlignment : 'fillWidth',
thumbnailDisplayTransition : 'slideDown',
thumbnailDisplayTransitionDuration : 500,
thumbnailDisplayInterval : 30,
// THUMBNAIL'S HOVER ANIMATION
thumbnailHoverEffect2 : 'imageScaleIn80',
touchAnimation : true,
touchAutoOpenDelay : 800,
viewerToolbar : {
display : true,
standard : 'minimizeButton, label',
minimized : 'minimizeButton, label, fullscreenButton, downloadButton'
},
viewerTools : {
topLeft : 'pageCounter',
topRight : 'playPauseButton, zoomButton, fullscreenButton, downloadButton, closeButton'
},
// DEEP LINKING
locationHash : false,
items : json_array_images
})
clearInterval(waitForJQuery);
}
}, 200);
}-*/;
public ImagesGallery(List<UploadedImageDV> immagini) {
this.listImages = immagini;
}
public HTMLPanel getGalleryPanel() {
return galleryPanel;
}
public void fillGallery() {
JSONArray jsonArray = new JSONArray();
int index = 0;
for (UploadedImageDV image : listImages) {
for (WorkspaceContentDV imageContent : image.getListWsContent()) {
JSONObject json = new JSONObject();
json.put("src", new JSONString(imageContent.getLink()));
json.put("srct", new JSONString(imageContent.getLink()));
json.put("title", new JSONString(image.getDidascalia()));
//json.put("description", new JSONString(image.getDidascalia()));
json.put("downloadURL", new JSONString(imageContent.getLink()));
jsonArray.set(index, json);
index++;
}
}
showGallery(jsonArray.getJavaScriptObject());
}
}