@Override public ImageBuilder src(String src) { assertCanAddAttribute().setSrc(src); return this; }
@Override public int getHeight(Image image) { return getImageElement(image).getHeight(); }
@Override public int getWidth(Image image) { return getImageElement(image).getWidth(); }
@Override public void onSuccess (Blob result) { final ImageElement image = createImage(); if (crossOrigin != null) { image.setAttribute("crossOrigin", crossOrigin); } hookImgListener(image, new ImgEventListener() { @Override public void onEvent (NativeEvent event) { if (event.getType().equals("error")) listener.onFailure(); else listener.onSuccess(image); } }); if (isUseInlineBase64()) { image.setSrc("data:" + mimeType + ";base64," + result.toBase64()); } else { image.setSrc(url); } }
public static final String toDataURL(ImageElement element, DataURLType mimetype) { if (null == mimetype) { mimetype = DataURLType.PNG; } ScratchCanvas canvas = new ScratchCanvas(element.getWidth(), element.getHeight()); canvas.getContext().drawImage(element, 0, 0, element.getWidth(), element.getHeight()); return canvas.toDataURL(mimetype); }
private final void doImageElementLoadAndRetry(final ImageElement elem, final Image image, final String orig, final String url) { final int w = Math.max(image.getWidth(), elem.getWidth()); final int h = Math.max(image.getHeight(), elem.getHeight()); if ((w < 1) || (h < 1)) { load(url, orig, new JSImageCallback() { @Override public void onSuccess(final ImageElement e) { onImageElementLoad(e); } @Override public void onFailure() { RootPanel.get().remove(image); onImageElementError("Image " + url + " failed to load"); } }); } else { elem.setWidth(w); elem.setHeight(h); onImageElementLoad(elem); } }
/** * This constructor may be used by subclasses to explicitly use an existing * element. This element must be an <img> element. * * @param element the element to be used */ protected Image(Element element) { ImageElement.as(element); setElement(element); changeState(new UnclippedState(element)); }
/** * Gets the src attribute of an img element. This method is paired with * {@link #setImgSrc(Element, String)} so that it always returns the correct * url. * * @param img a non-null img whose src attribute is to be read. * @return the src url of the img */ public static String getImgSrc(Element img) { return img.<ImageElement> cast().getSrc(); }
@Override Element createThumbnail() { final DivElement thumbnail = DivElement.as(DOM.createDiv()); thumbnail.addClassName(THUMBNAIL_STYLE_NAME); thumbnail.getStyle().setDisplay(Style.Display.INLINE_BLOCK); final SpanElement caption = SpanElement.as(DOM.createSpan()); caption.getStyle().setDisplay(Style.Display.NONE); final ImageElement image = ImageElement.as(DOM.createImg()); image.addClassName(THUMBNAIL_IMAGE_STYLE_NAME); image.getStyle().setDisplay(Style.Display.NONE); thumbnail.appendChild(image); thumbnail.appendChild(caption); return thumbnail; }
private void onJavaScriptImageObjectReady(JavaScriptObject jsImageObject) { if (!ImageElement.is(jsImageObject)) { throw new RuntimeException("Unexpected type of JavaScript object"); //$NON-NLS-1$ } final ImageElement imageElement = (ImageElement) ImageElement.as(jsImageObject); onElementReady(imageElement); }
/** * Set the height of the image */ @Override public void setHeight(String height) { img.getStyle().setProperty("height", height); }
@Override public ImageBuilder height(int height) { assertCanAddAttribute().setHeight(height); return this; }
@Override public ImageBuilder width(int width) { assertCanAddAttribute().setWidth(width); return this; } }
public static final String toDataURL(final ImageElement element, DataURLType mimetype, final double quality) { if (null == mimetype) { mimetype = DataURLType.PNG; } final ScratchPad canvas = new ScratchPad(element.getWidth(), element.getHeight()); canvas.getContext().drawImage(element, 0, 0, element.getWidth(), element.getHeight()); return canvas.toDataURL(mimetype, quality); }
@Override public void onSuccess (Blob result) { final ImageElement image = createImage(); if (crossOrigin != null) { image.setAttribute("crossOrigin", crossOrigin); } hookImgListener(image, new ImgEventListener() { @Override public void onEvent (NativeEvent event) { if (event.getType().equals("error")) listener.onFailure(); else listener.onSuccess(image); } }); if (isUseInlineBase64()) { image.setSrc("data:" + mimeType + ";base64," + result.toBase64()); } else { image.setSrc(url); } }
public Image() { super(ImageElement.TAG); this.imgElement = ImageElement.as(this.getElement()); }
@Override public SafeUri getUrl(Image image) { return UriUtils.unsafeCastFromUntrustedString(getImageElement(image).getSrc()); }
@Override Element createThumbnail() { final DivElement thumbnail = DivElement.as(DOM.createDiv()); thumbnail.addClassName(THUMBNAIL_STYLE_NAME); final SpanElement iconFontEl = SpanElement.as(DOM.createSpan()); iconFontEl.addClassName(ICON_STYLE_NAME); Style style = iconFontEl.getStyle(); style.setDisplay(Style.Display.NONE); style.setFontSize(24, Style.Unit.PX); style.setLineHeight(1, Style.Unit.PX); final ImageElement image = ImageElement.as(DOM.createImg()); image.addClassName(THUMBNAIL_IMAGE_STYLE_NAME); image.getStyle().setDisplay(Style.Display.NONE); thumbnail.appendChild(image); thumbnail.appendChild(iconFontEl); return thumbnail; }