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 {