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 { } 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(); }*/ } } }); } }