You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
geoportal-data-viewer-app/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/images/ImageView.java

110 lines
3.2 KiB
Java

package org.gcube.portlets.user.geoportaldataviewer.client.ui.images;
import org.gcube.portlets.user.geoportaldataviewer.client.util.NewBrowserWindow;
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 expandImage;
private WorkspaceContentDV latest;
public ImageView(UploadedImageDV imageDV) {
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);
imageURL.setVisible(true);
imageURL.setUrl(latest.getLink());
}
expandImage.setType(ButtonType.LINK);
expandImage.setIcon(IconType.RESIZE_FULL);
expandImage.setTitle("Open Image in New Browser Window");
expandImage.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();
}*/
}
}
});
}
}