commit
4f3c299d11
@ -1,4 +1,4 @@
|
||||
eclipse.preferences.version=1
|
||||
lastWarOutDir=/home/francescomangiacrapa/git/geoportal-data-viewer-app/target/geoportal-data-viewer-app-1.1.0
|
||||
lastWarOutDir=/home/francescomangiacrapa/git/geoportal-data-viewer-app/target/geoportal-data-viewer-app-1.2.0-SNAPSHOT
|
||||
warSrcDir=src/main/webapp
|
||||
warSrcDirIsOutput=false
|
||||
|
@ -0,0 +1,164 @@
|
||||
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.Random;
|
||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||
|
||||
|
||||
/**
|
||||
* The Class ImagesGallery.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Jul 21, 2021
|
||||
*/
|
||||
public class ImagesGallery {
|
||||
|
||||
private HTMLPanel galleryPanel;
|
||||
private List<UploadedImageDV> listImages;
|
||||
private String galleryDivId;
|
||||
|
||||
/**
|
||||
* Show gallery.
|
||||
*
|
||||
* @param json_array_images the json array images
|
||||
*/
|
||||
private native void showGallery(JavaScriptObject json_array_images, String galleryDivId) /*-{
|
||||
|
||||
console.log("showing: " + json_array_images)
|
||||
var waitForJQuery = setInterval(
|
||||
function() {
|
||||
if (typeof $wnd.$ != 'undefined') {
|
||||
|
||||
$wnd
|
||||
.$("#"+galleryDivId)
|
||||
.nanogallery2(
|
||||
{
|
||||
thumbnailHeight : '200 XS150 SM150', // RESPONSIVE THUMBNAIL HEIGHT: default=200px, XS resolution=150px, SM resolution=150px
|
||||
thumbnailWidth : '218 XS150 SM150', // RESPONSIVE THUMBNAIL WIDTH: auto
|
||||
thumbnailAlignment : 'left',
|
||||
thumbnailBorderHorizontal : 0,
|
||||
thumbnailBorderVertical : 0,
|
||||
thumbnailGutterWidth : '10 XS10 SM10',
|
||||
thumbnailGutterHeight : '10 XS10 SM10',
|
||||
|
||||
// THUMBNAIL TOOLS & LABEL
|
||||
thumbnailLabel : {
|
||||
display : true,
|
||||
position : 'onBottom',
|
||||
align : 'left'
|
||||
},
|
||||
thumbnailToolbarImage : {
|
||||
bottomLeft : 'display'
|
||||
},
|
||||
// replace the default DISPLAY tool icon
|
||||
icons : {
|
||||
thumbnailDisplay : '<i class="fa fa-long-arrow-right" aria-hidden="true"></i> display'
|
||||
},
|
||||
|
||||
// DISPLAY ANIMATION
|
||||
galleryDisplayTransition : 'slideUp',
|
||||
galleryDisplayTransitionDuration : 1000,
|
||||
thumbnailDisplayTransition : 'scaleDown',
|
||||
thumbnailDisplayTransitionDuration : 300,
|
||||
thumbnailDisplayInterval : 50,
|
||||
|
||||
// THUMBNAIL'S HOVER ANIMATION
|
||||
//thumbnailBuildInit2 : 'tools_font-size_1.5em|title_font-size_1.5em',
|
||||
thumbnailHoverEffect2 : 'imageScaleIn80|tools_opacity_0_1|tools_translateX_-30px_0px|title_opacity_1_0|title_translateX_0px_-30px',
|
||||
touchAnimation : true,
|
||||
touchAutoOpenDelay : 800,
|
||||
|
||||
// GALLERY THEME
|
||||
galleryTheme : {
|
||||
thumbnail : {
|
||||
borderRadius : '2px',
|
||||
background : '#fff',
|
||||
titleShadow : 'none',
|
||||
titleColor : '#696969',
|
||||
labelBackground : '#f3f3f3'
|
||||
},
|
||||
thumbnailIcon : {
|
||||
color : '#000',
|
||||
shadow : 'none'
|
||||
},
|
||||
},
|
||||
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);
|
||||
|
||||
}-*/;
|
||||
|
||||
/**
|
||||
* Instantiates a new images gallery.
|
||||
*
|
||||
* @param immagini the immagini
|
||||
*/
|
||||
public ImagesGallery(List<UploadedImageDV> immagini) {
|
||||
this.galleryDivId = "nanogallery"+Random.nextInt()+Random.nextInt();
|
||||
this.galleryPanel = new HTMLPanel("<div id='"+galleryDivId+"'></div>");
|
||||
this.listImages = immagini;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the gallery panel.
|
||||
*
|
||||
* @return the gallery panel
|
||||
*/
|
||||
public HTMLPanel getGalleryPanel() {
|
||||
return galleryPanel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fill gallery.
|
||||
*/
|
||||
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()));
|
||||
List<String> listAuthors = image.getResponsabili();
|
||||
String txtAuthors = listAuthors.size()>1 ? "Authors: ": "Author: ";
|
||||
for (String author : listAuthors) {
|
||||
txtAuthors+= " "+author +",";
|
||||
}
|
||||
txtAuthors = txtAuthors.substring(0,txtAuthors.length()-2);
|
||||
String description = txtAuthors + ". ID Licenza: "+image.getLicenseID();
|
||||
json.put("title", new JSONString(image.getDidascalia()));
|
||||
json.put("description", new JSONString(description));
|
||||
json.put("downloadURL", new JSONString(imageContent.getLink()));
|
||||
jsonArray.set(index, json);
|
||||
index++;
|
||||
}
|
||||
|
||||
}
|
||||
showGallery(jsonArray.getJavaScriptObject(), galleryDivId);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue