diff --git a/.classpath b/.classpath
index effbc0d..052d3e8 100644
--- a/.classpath
+++ b/.classpath
@@ -17,11 +17,6 @@
-
-
-
-
-
@@ -32,5 +27,11 @@
+
+
+
+
+
+
diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs
index f7c4208..98bffdd 100644
--- a/.settings/com.google.gdt.eclipse.core.prefs
+++ b/.settings/com.google.gdt.eclipse.core.prefs
@@ -1,4 +1,4 @@
eclipse.preferences.version=1
-lastWarOutDir=/home/costantino/workspace/image-previewer-widget/target/image-previewer-widget-1.0.0-SNAPSHOT
+lastWarOutDir=/Users/massi/Documents/workspace/image-previewer-widget/target/image-previewer-widget-1.2.0-SNAPSHOT
warSrcDir=src/main/webapp
warSrcDirIsOutput=false
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 443e085..6e80039 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml
index 735eb31..3f2dd2b 100644
--- a/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ b/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/distro/changelog.xml b/distro/changelog.xml
index d5b1b3e..a5e185f 100644
--- a/distro/changelog.xml
+++ b/distro/changelog.xml
@@ -1,4 +1,8 @@
+
+ Updated style of arrows and loader
+ Added possibility to override click next and click prev
+
Minor fix
diff --git a/pom.xml b/pom.xml
index 07f377a..115c91f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
org.gcube.portlets.widgets
image-previewer-widget
- 1.1.3-SNAPSHOT
+ 1.2.0-SNAPSHOT
gCube Image previewer widget
gCube Image Previewer widget is a GWT Widget that can be used to show a preview of one or more images
diff --git a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/CarouselInterface.java b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/CarouselInterface.java
new file mode 100644
index 0000000..a025542
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/CarouselInterface.java
@@ -0,0 +1,6 @@
+package org.gcube.portlets.widgets.imagepreviewerwidget.client;
+
+public interface CarouselInterface {
+ void onClickPrev();
+ void onClickNext();
+}
diff --git a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ImagePreviewer.java b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ImagePreviewer.java
index 248f1b5..c78370f 100644
--- a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ImagePreviewer.java
+++ b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ImagePreviewer.java
@@ -7,6 +7,7 @@ import org.gcube.portlets.widgets.imagepreviewerwidget.client.ui.Carousel;
import com.github.gwtbootstrap.client.ui.Button;
import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.RootPanel;
@@ -21,7 +22,7 @@ public class ImagePreviewer implements EntryPoint {
public void onModuleLoad() {
// decomment for testing purpose
- // test();
+// test();
}
@@ -40,8 +41,21 @@ public class ImagePreviewer implements EntryPoint {
images.add(new EnhancedImage("https://upload.wikimedia.org/wikipedia/it/1/17/Il_grande_Lebowski.jpg"));
- final Carousel c = new Carousel();
- c.updateImages(images);
+ final Carousel c = new Carousel() {
+ @Override
+ public void onClickNext() {
+ GWT.log("onClickNext intercepted");
+ show(new EnhancedImage("http://images6.alphacoders.com/316/316963.jpg"));
+ }
+ @Override
+ public void onClickPrev() {
+ GWT.log("onClickPrev intercepted");
+ show(new EnhancedImage("http://nerdist.com/wp-content/uploads/2014/07/ned-stark-970x545.jpg"));
+ }
+
+ };
+ c.show(new EnhancedImage("http://ftp.d4science.org/previews/2771b8d3-7b39-451e-a642-fd7eea1c1baa.jpg"));
+ //c.updateImages(images);
// button to show the carousel
Button b = new Button(new ClickHandler() {
@@ -54,7 +68,7 @@ public class ImagePreviewer implements EntryPoint {
});
b.setText("Show preview");
- b.click();
+ // b.click();
RootPanel.get("image-previewer-div").add(b);
}
diff --git a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/resources/loading.gif b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/resources/loading.gif
index 4c4d825..2cc4b54 100644
Binary files a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/resources/loading.gif and b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/resources/loading.gif differ
diff --git a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ui/Carousel.java b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ui/Carousel.java
index ab170fd..e59641e 100644
--- a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ui/Carousel.java
+++ b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ui/Carousel.java
@@ -1,7 +1,9 @@
package org.gcube.portlets.widgets.imagepreviewerwidget.client.ui;
+import java.util.ArrayList;
import java.util.List;
+import org.gcube.portlets.widgets.imagepreviewerwidget.client.CarouselInterface;
import org.gcube.portlets.widgets.imagepreviewerwidget.client.EnhancedImage;
import org.gcube.portlets.widgets.imagepreviewerwidget.client.ImageService;
import org.gcube.portlets.widgets.imagepreviewerwidget.client.ImageServiceAsync;
@@ -14,6 +16,7 @@ import com.github.gwtbootstrap.client.ui.Modal;
import com.github.gwtbootstrap.client.ui.constants.Device;
import com.github.gwtbootstrap.client.ui.constants.IconSize;
import com.github.gwtbootstrap.client.ui.constants.IconType;
+import com.github.gwtbootstrap.client.ui.resources.ButtonSize;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NodeList;
@@ -38,7 +41,7 @@ import com.google.gwt.user.client.ui.Widget;
* (costantino.perciante@isti.cnr.it)
*
*/
-public class Carousel extends Composite{
+public class Carousel extends Composite implements CarouselInterface {
private static CarouselUiBinder uiBinder = GWT
.create(CarouselUiBinder.class);
@@ -94,7 +97,7 @@ public class Carousel extends Composite{
public Carousel() {
initWidget(uiBinder.createAndBindUi(this));
-
+ listOfAttachmentsToShow = new ArrayList<>();
// add custom styles to gwt-bootstrap-modal (just once)
mainModalPanel.addStyleName("modal-custom");
((Element)mainModalPanel.getElement().getChildNodes().getItem(1)).addClassName("modal-body-custom");
@@ -116,14 +119,17 @@ public class Carousel extends Composite{
closeButton.setWidth("90px");
downloadButtonSmart.setWidth("15px");
closeButtonSmart.setWidth("15px");
-
+ closeButtonSmart.setSize(ButtonSize.LARGE);
+
// set icons
downloadButton.setIcon(IconType.DOWNLOAD_ALT);
closeButton.setIcon(IconType.COLLAPSE);
downloadButtonSmart.setIcon(IconType.DOWNLOAD_ALT);
closeButtonSmart.setIcon(IconType.COLLAPSE);
prevButton.setIcon(IconType.CHEVRON_LEFT);
+ prevButton.setSize(ButtonSize.LARGE);
nextButton.setIcon(IconType.CHEVRON_RIGHT);
+ nextButton.setSize(ButtonSize.LARGE);
// set icons'size
prevButton.setIconSize(IconSize.LARGE);
@@ -217,21 +223,31 @@ public class Carousel extends Composite{
}
+ @Override
+ public void onClickPrev() {
+ // evaluate prev index
+ currentPreviewPosition = currentPreviewPosition == 0 ? listOfAttachmentsToShow.size() - 1 : currentPreviewPosition - 1;
+ // show the image
+ showImage(currentPreviewPosition);
+ }
+
+ @Override
+ public void onClickNext() {
+ // evaluate next index
+ currentPreviewPosition = currentPreviewPosition == listOfAttachmentsToShow.size() -1 ? 0 : currentPreviewPosition + 1;
+ // show the image
+ showImage(currentPreviewPosition);
+ }
+
@UiHandler("prevButton")
/**
* Show the previous image, if any.
* @param e
*/
- public void onClickPrev(ClickEvent e){
-
- // evaluate prev index
- currentPreviewPosition =
- currentPreviewPosition == 0 ?
- listOfAttachmentsToShow.size() - 1 : currentPreviewPosition - 1;
-
- // show the image
- showImage(currentPreviewPosition);
+ public void onClickPrev(ClickEvent e) {
+ GWT.log("onClickPrev classic");
+ onClickPrev();
}
@UiHandler("nextButton")
@@ -240,15 +256,7 @@ public class Carousel extends Composite{
* @param e
*/
public void onClickNext(ClickEvent e){
-
- // evaluate next index
- currentPreviewPosition =
- currentPreviewPosition == listOfAttachmentsToShow.size() -1 ?
- 0 : currentPreviewPosition + 1;
-
- // show the image
- showImage(currentPreviewPosition);
-
+ onClickNext();
}
/**
@@ -269,19 +277,22 @@ public class Carousel extends Composite{
* Used to show a specific image of this carousel.
*/
public void show(EnhancedImage image){
-
+ GWT.log("image=" + image.getDownloadUrl());
// evaluate where this image is
int index = evaluateImagePosition(image);
-
- if(index == -1)
- return;
-
- // take the first object
- currentPreviewPosition = index;
-
- // show the image
- showImage(currentPreviewPosition);
-
+ GWT.log("index=" + index);
+ if(index == -1) {
+ listOfAttachmentsToShow.clear();
+ listOfAttachmentsToShow.add(image);
+ index = 0;
+ showImage(index);
+ }
+ else {
+ // take the first object
+ currentPreviewPosition = index;
+ // show the image
+ showImage(currentPreviewPosition);
+ }
// show the panel
mainModalPanel.show();
}
@@ -314,13 +325,22 @@ public class Carousel extends Composite{
}
/**
- * Hide Previous and Next arrows of the carousel.
+ * use showArrows(boolean visible)
*/
- public void hideArrows(){
-
+ @Deprecated
+ public void hideArrows() {
nextButton.setVisible(false);
prevButton.setVisible(false);
+ }
+
+ /**
+ * Hide/Show Previous and Next arrows of the carousel.
+ * @param visible the visibility of the command arrows
+ */
+ public void showArrows(boolean visible) {
+ nextButton.setVisible(visible);
+ prevButton.setVisible(visible);
}
/**
diff --git a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ui/Carousel.ui.xml b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ui/Carousel.ui.xml
index 95d62c9..345d7fc 100644
--- a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ui/Carousel.ui.xml
+++ b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/client/ui/Carousel.ui.xml
@@ -1,6 +1,8 @@
+ xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:b="urn:import:com.github.gwtbootstrap.client.ui"
+ xmlns:c="urn:import:org.gcube.portlets.widgets.imagepreviewerwidget.client.resources">
+
@@ -12,13 +14,17 @@
-
-
-
+
+
+
+
+
Download
Close
-
+
+
+
diff --git a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/public/ImagePreviewer.css b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/public/ImagePreviewer.css
index 278605f..4a5238d 100644
--- a/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/public/ImagePreviewer.css
+++ b/src/main/java/org/gcube/portlets/widgets/imagepreviewerwidget/public/ImagePreviewer.css
@@ -33,6 +33,18 @@
}
}
+.arrowYPos-right {
+ position: relative;
+ top: -280px;
+ float: right;
+}
+
+.arrowYPos-left {
+ position: relative;
+ top: -280px;
+ float: left;
+}
+
.modal-custom {
min-width: 300px !important;
top: 3% !important;
@@ -69,6 +81,7 @@
height: 90%;
width: 100%;
margin-bottom: 2%;
+ cursor: pointer;
}
.command-container {