122 lines
3.3 KiB
Java
122 lines
3.3 KiB
Java
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;
|
|
|
|
import com.github.gwtbootstrap.client.ui.Button;
|
|
import com.github.gwtbootstrap.client.ui.Heading;
|
|
import com.github.gwtbootstrap.client.ui.Image;
|
|
import com.github.gwtbootstrap.client.ui.Paragraph;
|
|
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
|
|
import com.github.gwtbootstrap.client.ui.constants.IconType;
|
|
import com.google.gwt.core.client.GWT;
|
|
import com.google.gwt.event.dom.client.ClickEvent;
|
|
import com.google.gwt.event.dom.client.ClickHandler;
|
|
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;
|
|
|
|
@UiField
|
|
Button openImage;
|
|
|
|
@UiField
|
|
Button viewImage;
|
|
|
|
private WorkspaceContentDV latest;
|
|
|
|
|
|
public ImageView(UploadedImageDV imageDV, final boolean showView, final boolean showOpen) {
|
|
initWidget(uiBinder.createAndBindUi(this));
|
|
|
|
heading.setText(imageDV.getTitolo());
|
|
paragraph1.setText(imageDV.getDidascalia());
|
|
|
|
if(imageDV.getListWsContent()!=null && imageDV.getListWsContent().size()>0) {
|
|
latest = imageDV.getListWsContent().get(imageDV.getListWsContent().size()-1);
|
|
openImage.setVisible(true);
|
|
viewImage.setVisible(true);
|
|
imageURL.setVisible(true);
|
|
imageURL.setUrl(latest.getLink());
|
|
}
|
|
|
|
openImage.setType(ButtonType.LINK);
|
|
openImage.setIcon(IconType.EXTERNAL_LINK);
|
|
openImage.setTitle("Open Image in New Browser Window");
|
|
openImage.setVisible(showOpen);
|
|
|
|
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) {
|
|
|
|
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);
|
|
}
|
|
|
|
}
|