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

134 lines
3.7 KiB
Java
Raw Normal View History

2020-11-05 14:05:14 +01:00
package org.gcube.portlets.user.geoportaldataviewer.client.ui.images;
import org.gcube.application.geoportalcommon.shared.products.content.WorkspaceContentDV;
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
2020-11-20 18:10:43 +01:00
import org.gcube.portlets.user.geoportaldataviewer.client.ui.ModalWindow;
2020-11-19 15:19:27 +01:00
import org.gcube.portlets.user.geoportaldataviewer.client.util.NewBrowserWindow;
2020-11-20 18:10:43 +01:00
import org.gcube.portlets.user.geoportaldataviewer.client.util.StringUtil;
2020-11-05 14:05:14 +01:00
2020-11-19 15:19:27 +01:00
import com.github.gwtbootstrap.client.ui.Button;
2020-11-05 14:05:14 +01:00
import com.github.gwtbootstrap.client.ui.Heading;
import com.github.gwtbootstrap.client.ui.Image;
import com.github.gwtbootstrap.client.ui.Paragraph;
2020-11-19 15:19:27 +01:00
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
import com.github.gwtbootstrap.client.ui.constants.IconType;
2020-11-05 14:05:14 +01:00
import com.google.gwt.core.client.GWT;
2020-12-09 14:28:32 +01:00
import com.google.gwt.dom.client.Style.TextAlign;
2020-11-05 14:05:14 +01:00
import com.google.gwt.event.dom.client.ClickEvent;
2020-11-19 15:19:27 +01:00
import com.google.gwt.event.dom.client.ClickHandler;
2020-11-05 14:05:14 +01:00
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.Widget;
public class ImageView extends Composite {
private static ImageViewUiBinder uiBinder = GWT.create(ImageViewUiBinder.class);
interface ImageViewUiBinder extends UiBinder<Widget, ImageView> {
}
public ImageView() {
initWidget(uiBinder.createAndBindUi(this));
}
@UiField
Image imageURL;
@UiField
Heading heading;
@UiField
Paragraph paragraph1;
2020-12-09 14:28:32 +01:00
@UiField
Paragraph paragraph2;
2020-11-19 15:19:27 +01:00
@UiField
2020-11-20 18:10:43 +01:00
Button openImage;
@UiField
Button viewImage;
2020-11-19 15:19:27 +01:00
private WorkspaceContentDV latest;
2020-11-05 14:05:14 +01:00
2020-11-20 18:10:43 +01:00
public ImageView(UploadedImageDV imageDV, final boolean showView, final boolean showOpen) {
2020-11-05 14:05:14 +01:00
initWidget(uiBinder.createAndBindUi(this));
2020-11-20 18:10:43 +01:00
2021-01-15 15:12:03 +01:00
if(imageDV.getTitolo()!=null && !imageDV.getTitolo().isEmpty()) {
heading.setText(imageDV.getTitolo());
}
2020-11-05 14:05:14 +01:00
paragraph1.setText(imageDV.getDidascalia());
2020-12-09 14:28:32 +01:00
paragraph1.getElement().getStyle().setTextAlign(TextAlign.LEFT);
if(!showView && imageDV.getLicenseID()!=null) {
paragraph2.setVisible(true);
paragraph2.setText("ID Licenza: "+imageDV.getLicenseID());
}
2020-11-05 14:05:14 +01:00
if(imageDV.getListWsContent()!=null && imageDV.getListWsContent().size()>0) {
2020-11-19 15:19:27 +01:00
latest = imageDV.getListWsContent().get(imageDV.getListWsContent().size()-1);
2020-11-20 18:10:43 +01:00
openImage.setVisible(true);
viewImage.setVisible(true);
2020-11-19 15:19:27 +01:00
imageURL.setVisible(true);
2020-11-05 14:05:14 +01:00
imageURL.setUrl(latest.getLink());
}
2020-11-19 15:19:27 +01:00
2020-11-20 18:10:43 +01:00
openImage.setType(ButtonType.LINK);
openImage.setIcon(IconType.EXTERNAL_LINK);
openImage.setTitle("Open Image in New Browser Window");
openImage.setVisible(showOpen);
2020-11-19 15:19:27 +01:00
2020-11-20 18:10:43 +01:00
openImage.addClickHandler(new ClickHandler() {
2020-11-19 15:19:27 +01:00
@Override
public void onClick(ClickEvent event) {
if(latest!=null) {
2020-11-20 18:10:43 +01:00
NewBrowserWindow.open(latest.getLink()+"?content-disposition=inline", "_blank", null);
2020-11-19 15:19:27 +01:00
}
}
});
2020-11-20 18:10:43 +01:00
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) {
2021-01-15 15:12:03 +01:00
ModalWindow mw = new ModalWindow(StringUtil.ellipsize(imageDV.getDidascalia(), 50), 900, 600);
2020-11-20 18:10:43 +01:00
mw.add(new ImageView(imageDV, false, true));
mw.setCaller(ImageView.this);
//mw.setWidth(900);
2020-11-20 18:10:43 +01:00
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);
2020-11-05 14:05:14 +01:00
}
}