From ca5a5dbb00fa07496264ef6ebe435cefa96f7eca Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Fri, 20 Nov 2020 18:10:43 +0100 Subject: [PATCH] improved GUI --- .../client/OLMapManager.java | 19 ++-- .../client/gis/OpenLayerOSM.java | 29 ------ .../client/ui/DetailsPanel.java | 4 +- .../client/ui/GeonaDataViewMainPanel.java | 4 - .../client/ui/GeonaDataViewMainPanel.ui.xml | 2 +- .../client/ui/ModalWindow.java | 69 ++++++++++++++ .../client/ui/images/ImageView.java | 94 +++++++++++-------- .../client/ui/images/ImageView.ui.xml | 15 ++- .../client/ui/images/ThumbnailImageView.java | 61 ++++++++++++ .../ui/images/ThumbnailImageView.ui.xml | 15 +++ .../products/concessioni/ConcessioneView.java | 60 ++++++------ .../concessioni/ConcessioneView.ui.xml | 2 +- .../client/util/StringUtil.java | 9 +- .../geoportaldataviewer/server/TestModel.java | 2 +- 14 files changed, 256 insertions(+), 129 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/ModalWindow.java create mode 100644 src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ThumbnailImageView.java create mode 100644 src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ThumbnailImageView.ui.xml diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/OLMapManager.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/OLMapManager.java index 1d57d43..b271ee7 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/OLMapManager.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/OLMapManager.java @@ -59,11 +59,14 @@ public class OLMapManager { if(!olMap.mapInstancied()) return; - if (olMap.isQueryPointActive()) { - GeoQuery select = toDataPointQuery(coordinate); - layerManagerBus.fireEvent(new QueryDataEvent(select, coordinate)); - - } +// if (olMap.isQueryPointActive()) { +// GeoQuery select = toDataPointQuery(coordinate); +// layerManagerBus.fireEvent(new QueryDataEvent(select, coordinate)); +// +// } + + GeoQuery select = toDataPointQuery(coordinate); + layerManagerBus.fireEvent(new QueryDataEvent(select, coordinate)); } @@ -103,7 +106,6 @@ public class OLMapManager { @Override public void mapZoomEndListener(MapEvent event) { - //onInit //onInit if(!olMap.mapInstancied()) return; @@ -153,11 +155,6 @@ public class OLMapManager { double y2 = Math.max(lat + geoWidth, lat - geoWidth); // GWT.log("("+x1+","+y1+")("+x2+","+y2+")"); -// Point pt = new Point(coordinate); -// ol.Extent extent = pt.getExtent(); -// //new ClickDataInfo(x1, y1, x2, y2) -// SelectDataInfo selectDataInfo - // selectBox(new GeoQuery(x1, y1, x2, y2, GeoQuery.TYPE.POINT)); GeoQuery select = new GeoQuery(x1, y1, x2, y2, TYPE.POINT); return select; } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerOSM.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerOSM.java index a59e85a..acd8f1e 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerOSM.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerOSM.java @@ -301,35 +301,6 @@ public abstract class OpenLayerOSM { } -// /** -// * Adds the WMS layer. -// * -// * @param mapServerHost the map server host -// * @param layerName the layer name -// */ -// public void addWMSLayer(String mapServerHost, String layerName) { -// -// ImageWmsParams imageWMSParams = OLFactory.createOptions(); -// imageWMSParams.setLayers(layerName); -// -// ImageWmsOptions imageWMSOptions = OLFactory.createOptions(); -// imageWMSOptions.setUrl(mapServerHost); -// imageWMSOptions.setParams(imageWMSParams); -// //imageWMSOptions.setRatio(1.5f); -// -// ImageWms imageWMSSource = new ImageWms(imageWMSOptions); -// -// LayerOptions layerOptions = OLFactory.createOptions(); -// layerOptions.setSource(imageWMSSource); -// -// Image wmsLayer = new Image(layerOptions); -// -// //visibleLayerItems -// -// map.addLayer(wmsLayer); -// } - - /** * Adds the point vector source. * diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/DetailsPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/DetailsPanel.java index 432f2e8..316cf11 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/DetailsPanel.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/DetailsPanel.java @@ -8,6 +8,7 @@ import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.RecordD import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.constants.ButtonType; +import com.github.gwtbootstrap.client.ui.constants.IconSize; import com.github.gwtbootstrap.client.ui.constants.IconType; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; @@ -44,7 +45,8 @@ public class DetailsPanel extends Composite { initWidget(uiBinder.createAndBindUi(this)); closeButton.setType(ButtonType.LINK); - closeButton.setIcon(IconType.REMOVE_SIGN); + closeButton.setIcon(IconType.REMOVE); + closeButton.setIconSize(IconSize.LARGE); closeButton.addClickHandler(new ClickHandler() { diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java index cf718f0..a60c0d9 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java @@ -38,9 +38,6 @@ public class GeonaDataViewMainPanel extends Composite { */ interface GeonaDataViewMainPanelUiBinder extends UiBinder { } - -// @UiField -// Tab mapTabPanel; @UiField HTMLPanel mainContainerPanel; @@ -48,7 +45,6 @@ public class GeonaDataViewMainPanel extends Composite { @UiField HTMLPanel mainToolBar; - @UiField NavLink dataPointSelection; diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml index 268ca53..e5bf862 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml @@ -12,7 +12,7 @@ - + Data Point diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/ModalWindow.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/ModalWindow.java new file mode 100644 index 0000000..efab99a --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/ModalWindow.java @@ -0,0 +1,69 @@ +package org.gcube.portlets.user.geoportaldataviewer.client.ui; + +import com.github.gwtbootstrap.client.ui.Button; +import com.github.gwtbootstrap.client.ui.Modal; +import com.github.gwtbootstrap.client.ui.ModalFooter; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.ui.Widget; + + +/** + * The Class ModalWindow. + * + * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) + * + * Nov 20, 2020 + */ +public class ModalWindow { + + private Modal modal; + private Object caller; + + /** + * Instantiates a new modal window. + * + * @param title the title + * @param toAdd the to add + * @param toReturn the to return + */ + public ModalWindow(String title) { + + modal = new Modal(false); + modal.hide(false); + modal.setTitle(title); + modal.setCloseVisible(true); + modal.setWidth(900); + + ModalFooter modalFooter = new ModalFooter(); + final Button buttClose = new Button("Close"); + modalFooter.add(buttClose); + + buttClose.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + modal.hide(); + } + }); + modal.add(modalFooter); + + } + + public void add(Widget toAdd) { + modal.add(toAdd); + } + + public void setCaller(Object caller) { + this.caller = caller; + } + + public void show() { + modal.show(); + } + + public void setWidth(int width) { + modal.setWidth(width); + } + +} diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ImageView.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ImageView.java index b82ae90..7a65676 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ImageView.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ImageView.java @@ -1,6 +1,8 @@ package org.gcube.portlets.user.geoportaldataviewer.client.ui.images; +import org.gcube.portlets.user.geoportaldataviewer.client.ui.ModalWindow; import org.gcube.portlets.user.geoportaldataviewer.client.util.NewBrowserWindow; +import org.gcube.portlets.user.geoportaldataviewer.client.util.StringUtil; import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.WorkspaceContentDV; import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV; @@ -39,71 +41,81 @@ public class ImageView extends Composite { Paragraph paragraph1; @UiField - Button expandImage; + Button openImage; + + @UiField + Button viewImage; private WorkspaceContentDV latest; - public ImageView(UploadedImageDV imageDV) { + public ImageView(UploadedImageDV imageDV, final boolean showView, final boolean showOpen) { initWidget(uiBinder.createAndBindUi(this)); - - imageDV.getDidascalia(); + heading.setText(imageDV.getTitolo()); paragraph1.setText(imageDV.getDidascalia()); if(imageDV.getListWsContent()!=null && imageDV.getListWsContent().size()>0) { latest = imageDV.getListWsContent().get(imageDV.getListWsContent().size()-1); - expandImage.setVisible(true); + openImage.setVisible(true); + viewImage.setVisible(true); imageURL.setVisible(true); imageURL.setUrl(latest.getLink()); } - expandImage.setType(ButtonType.LINK); - expandImage.setIcon(IconType.RESIZE_FULL); - expandImage.setTitle("Open Image in New Browser Window"); + openImage.setType(ButtonType.LINK); + openImage.setIcon(IconType.EXTERNAL_LINK); + openImage.setTitle("Open Image in New Browser Window"); + openImage.setVisible(showOpen); - expandImage.addClickHandler(new ClickHandler() { + openImage.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + + if(latest!=null) { + NewBrowserWindow.open(latest.getLink()+"?content-disposition=inline", "_blank", null); + } + } + }); + + viewImage.setVisible(false); + viewImage.setType(ButtonType.LINK); + viewImage.setIcon(IconType.EXPAND); + viewImage.setTitle("View Image in New Dialog"); + viewImage.setVisible(showView); + + + viewImage.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if(latest!=null) { - NewBrowserWindow.open(latest.getLink(), "_blank", null); - - /*String noProtocolLink = latest.getLink().replaceFirst("https:", "").replaceFirst("httP:", ""); - GWT.log("noProtocolLink: "+noProtocolLink); - - final RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.HEAD, noProtocolLink); - - requestBuilder.setHeader("Content-Disposition", "inline"); - - requestBuilder.setCallback(new RequestCallback() { - - @Override - public void onResponseReceived(Request request, Response response) { - String responseURL = response.getHeader("Location"); - GWT.log("Response Received link: "+responseURL); - String link = responseURL+"?content-disposition=inline"; - - NewBrowserWindow.open(link, "_blank", null); - } - - @Override - public void onError(Request request, Throwable exception) { - } - }); - - try { - requestBuilder.send(); - } catch (RequestException e) { - e.printStackTrace(); - }*/ + ModalWindow mw = new ModalWindow(StringUtil.ellipsize(imageDV.getTitolo(), 20)); + mw.add(new ImageView(imageDV, false, true)); + mw.setCaller(ImageView.this); + mw.setWidth(900); + mw.show(); } + } }); - - + } + + + /** + * Sets the heading. + * + * @param title the new heading + */ + protected void setHeading(String title) { + heading.setText(title); + } + + protected void setParagraph(String text) { + paragraph1.setText(text); } } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ImageView.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ImageView.ui.xml index 64aa1d3..41f977d 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ImageView.ui.xml +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ImageView.ui.xml @@ -4,14 +4,18 @@ xmlns:b="urn:import:com.github.gwtbootstrap.client.ui"> .max-width-400 { - max-width: 400px !important; + max-width: 400px; } - .float-right{ + + .float-right { float: right; } - - Open + + + View + Open @@ -20,5 +24,6 @@ - + + \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ThumbnailImageView.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ThumbnailImageView.java new file mode 100644 index 0000000..ff93e2f --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ThumbnailImageView.java @@ -0,0 +1,61 @@ +package org.gcube.portlets.user.geoportaldataviewer.client.ui.images; + +import org.gcube.portlets.user.geoportaldataviewer.client.util.StringUtil; +import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.HTMLPanel; +import com.google.gwt.user.client.ui.Widget; + + +/** + * The Class ThumbnailImageView. + * + * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) + * + * Nov 20, 2020 + */ +public class ThumbnailImageView extends Composite { + + private static ThumbnailImageViewUiBinder uiBinder = GWT.create(ThumbnailImageViewUiBinder.class); + + @UiField + HTMLPanel thumbnailContainer; + /** + * The Interface ThumbnailImageViewUiBinder. + * + * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) + * + * Nov 20, 2020 + */ + interface ThumbnailImageViewUiBinder extends UiBinder { + } + + /** + * Instantiates a new thumbnail image view. + * + * @param imageDV the image DV + * @param showView the show view + * @param showOpen the show open + */ + public ThumbnailImageView(UploadedImageDV imageDV, final boolean showView, final boolean showOpen) { + initWidget(uiBinder.createAndBindUi(this)); + + ImageView imageView = new ImageView(imageDV, showView, showOpen); + String title = StringUtil.ellipsize(imageDV.getTitolo(), 20); + imageView.setHeading(title); + + String didascalia = StringUtil.ellipsize(imageDV.getDidascalia(), 50); + imageView.setParagraph(didascalia); + +// imageView.setViewImageVisible(true); + + thumbnailContainer.add(imageView); + + } + + +} diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ThumbnailImageView.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ThumbnailImageView.ui.xml new file mode 100644 index 0000000..5e5cd07 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ThumbnailImageView.ui.xml @@ -0,0 +1,15 @@ + + + + .max-width-400 { + max-width: 400px; + } + + + + + \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/concessioni/ConcessioneView.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/concessioni/ConcessioneView.java index 25c3ae9..c8ecbe4 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/concessioni/ConcessioneView.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/concessioni/ConcessioneView.java @@ -5,8 +5,9 @@ import java.util.List; import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants; import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync; import org.gcube.portlets.user.geoportaldataviewer.client.gis.MapUtils; +import org.gcube.portlets.user.geoportaldataviewer.client.ui.ModalWindow; import org.gcube.portlets.user.geoportaldataviewer.client.ui.dialogs.DialogShareableLink; -import org.gcube.portlets.user.geoportaldataviewer.client.ui.images.ImageView; +import org.gcube.portlets.user.geoportaldataviewer.client.ui.images.ThumbnailImageView; import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.MapView; import org.gcube.portlets.user.geoportaldataviewer.client.ui.util.CustomFlexTable; import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaItemRef; @@ -16,8 +17,6 @@ import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.Relazio import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV; import com.github.gwtbootstrap.client.ui.Button; -import com.github.gwtbootstrap.client.ui.Modal; -import com.github.gwtbootstrap.client.ui.ModalFooter; import com.github.gwtbootstrap.client.ui.PageHeader; import com.github.gwtbootstrap.client.ui.Paragraph; import com.github.gwtbootstrap.client.ui.Thumbnails; @@ -78,7 +77,7 @@ public class ConcessioneView extends Composite { Button shareButton; @UiField - Button openButton; + Button viewButton; private ConcessioneDV concessioneDV; @@ -90,15 +89,25 @@ public class ConcessioneView extends Composite { private String myLogin; + private boolean viewImageButtonVisible = true; + + private boolean openImageButtonVisible = true; + private ConcessioneView() { initWidget(uiBinder.createAndBindUi(this)); pageViewDetails.getElement().setId("page-view-details"); } - + public ConcessioneView(GeoNaItemRef item, ConcessioneDV concDV) { + this(item, concDV, true, true); + } + + public ConcessioneView(GeoNaItemRef item, ConcessioneDV concDV, boolean viewImageButtonVisible, boolean openImageButtonVisible) { this(); this.concessioneDV = concDV; this.geonaItemRef = item; + this.viewImageButtonVisible = viewImageButtonVisible; + this.openImageButtonVisible = openImageButtonVisible; titolo.setText(concessioneDV.getNome()); introduzione.setText(concessioneDV.getIntroduzione()); @@ -180,33 +189,22 @@ public class ConcessioneView extends Composite { } }); - openButton.setType(ButtonType.LINK); - openButton.setIcon(IconType.EXPAND); - openButton.setTitle("Open Details in New Dialog"); + viewButton.setType(ButtonType.LINK); + viewButton.setIcon(IconType.EXPAND); + viewButton.setTitle("View Details in New Dialog"); - openButton.addClickHandler(new ClickHandler() { + viewButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { - Modal modal = new Modal(false); - modal.hide(false); - modal.setCloseVisible(true); - modal.setWidth(900); - modal.setTitle(concessioneDV.getNome()); - modal.add(new ConcessioneView(geonaItemRef, concessioneDV)); - ModalFooter modalFooter = new ModalFooter(); - final Button buttClose = new Button("Close"); - modalFooter.add(buttClose); - - buttClose.addClickHandler(new ClickHandler() { - - @Override - public void onClick(ClickEvent event) { - modal.hide(); - } - }); - modal.add(modalFooter); - modal.show(); + + ConcessioneView cv = new ConcessioneView(geonaItemRef, concessioneDV, false, openImageButtonVisible); + cv.setViewDetailsButtonVisible(false); + ModalWindow mw = new ModalWindow(concessioneDV.getNome()); + mw.add(cv); + mw.setCaller(ConcessioneView.this); + mw.setWidth(900); + mw.show(); } }); @@ -316,7 +314,7 @@ public class ConcessioneView extends Composite { if (i == 0) imagesPanel.add(thumbNails); - thumbNails.add(new ImageView(uploadedImageDV)); + thumbNails.add(new ThumbnailImageView(uploadedImageDV, viewImageButtonVisible, openImageButtonVisible)); } } @@ -325,5 +323,9 @@ public class ConcessioneView extends Composite { public ConcessioneDV getConcessioneDV() { return concessioneDV; } + + protected void setViewDetailsButtonVisible(boolean bool) { + viewButton.setVisible(bool); + } } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/concessioni/ConcessioneView.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/concessioni/ConcessioneView.ui.xml index 6478e68..4c6f680 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/concessioni/ConcessioneView.ui.xml +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/products/concessioni/ConcessioneView.ui.xml @@ -29,7 +29,7 @@ Share - Open + View diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/util/StringUtil.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/util/StringUtil.java index c70ab76..6ba8c53 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/util/StringUtil.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/util/StringUtil.java @@ -16,15 +16,12 @@ public class StringUtil { /** * Ellipsize. * - * @param input the input string that may be subjected to shortening - * @param maxCharacters the maximum characters that must be returned for the input string. Must be at least 3 (that is the ellipses size) + * @param input the input string that may be subjected to shortening + * @param maxCharacters the maximum characters that must be returned for the input string * @return the string * @throws Exception the exception */ - public static String ellipsize(String input, int maxCharacters) throws Exception{ - if(maxCharacters < 3) { - throw new IllegalArgumentException("maxCharacters must be at least 3 because the ellipsis already take up 3 characters"); - } + public static String ellipsize(String input, int maxCharacters) { if (input == null || input.length() < maxCharacters) { return input; diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/TestModel.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/TestModel.java index 3ae5aef..1afdfc1 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/TestModel.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/TestModel.java @@ -86,7 +86,7 @@ public class TestModel { img.setResponsabili(concessione.getAuthors()); List actualContentList = new ArrayList(1); WorkspaceContent ws = new WorkspaceContent(); - ws.setLink("https://data-dev.d4science.net/ie8Y"); + ws.setLink("https://data.dev.d4science.org/shub/E_azRkaVhqTFExMzZvTG9pY0hwSFJNV2tVTHBEMGEycFVsQitvWjZvb29WZjkwRU84b1hXQnp0QjRuSGhrODJqQg=="); actualContentList.add(ws); img.setActualContent(actualContentList); imgs.add(img);