public abstract class AbstractImagePrototype extends Object
Image
object. An image
prototype can be thought of as an abstract image factory with additional
capabilities.
The applyTo(Image)
method provides an efficient way to replace the
contents of an existing Image
. This is useful in cases where an
image changes its appearance based on a user's action. Instead of creating
two Image
objects then alternately hiding/showing them, one can
use the applyTo(Image)
method of two
AbstractImagePrototype
objects to transform a single
Image
object between two (or more) visual representations. The
use of AbstractImagePrototypes
results in an cleaner and more
efficient implementation.
This class also provide methods for working with raw elements, using
createElement()
and applyTo(ImagePrototypeElement)
.
This class is also a useful way to encapsulate complex HTML that represents
an image without actually instantiating Image
objects. When
constructing large HTML fragments, especially those that contain many images,
getHTML()
can be much more efficient.
Modifier and Type | Class and Description |
---|---|
static class |
AbstractImagePrototype.ImagePrototypeElement
This corresponds to the top Element of the DOM structure created by
createElement() . |
Constructor and Description |
---|
AbstractImagePrototype() |
Modifier and Type | Method and Description |
---|---|
void |
applyTo(AbstractImagePrototype.ImagePrototypeElement imageElement)
Transforms an existing
AbstractImagePrototype.ImagePrototypeElement into the image
represented by this prototype. |
abstract void |
applyTo(Image image)
Transforms an existing
Image into the image represented by this
prototype. |
static AbstractImagePrototype |
create(ImageResource resource)
Create an AbstractImagePrototype backed by a ClientBundle ImageResource.
|
AbstractImagePrototype.ImagePrototypeElement |
createElement()
Creates a new
Element based on the image represented by this
prototype. |
abstract Image |
createImage()
Creates a new
Image instance based on the image represented by this
prototype. |
String |
getHTML()
Gets an HTML fragment that displays the image represented by this
prototype.
|
SafeHtml |
getSafeHtml()
Gets an HTML fragment that displays the image represented by this
prototype.
|
public static AbstractImagePrototype create(ImageResource resource)
resource
- an ImageResource produced by a ClientBundlepublic abstract void applyTo(Image image)
Image
into the image represented by this
prototype.image
- the instance to be transformed to match this prototypepublic void applyTo(AbstractImagePrototype.ImagePrototypeElement imageElement)
AbstractImagePrototype.ImagePrototypeElement
into the image
represented by this prototype.imageElement
- an ImagePrototypeElement
created by
createElement()
public AbstractImagePrototype.ImagePrototypeElement createElement()
Element
based on the image represented by this
prototype. The DOM structure may not necessarily a simple
<img>
element. It may be a more complex structure that
should be treated opaquely.ImagePrototypeElement
corresponding to the image
represented by this prototypepublic abstract Image createImage()
Image
instance based on the image represented by this
prototype.Image
based on this prototypepublic String getHTML()
<img>
element. It may be a more complex structure that
should be treated opaquely.
The default implementation calls getSafeHtml()
.
public SafeHtml getSafeHtml()
<img>
element. It may be a more complex structure that
should be treated opaquely.
The default implementation throws an UnsupportedOperationException
.
Copyright © 2018. All rights reserved.