- All Implemented Interfaces:
Serializable
,IEventSink
,IEventSource
,IFeedbackContributor
,IConverterLocator
,IMetadataContext<Serializable,
,Component> IRequestListener
,IHeaderContributor
,IRequestableComponent
,IHierarchical<Component>
,IClusterable
- Direct Known Subclasses:
NonCachingImage
,Source
For details of how Images load, generate and manage images, see LocalizedImageResource
.
The first ResourceReference / ImageResource is used for the src attribute within the img tag, all
following are applied to the srcset. If setXValues(String... values) is used the values are set
behind the srcset elements in the order they are given to the setXValues(String... valus) method.
The separated values in the sizes attribute are set with setSizes(String... sizes)
- Author:
- Jonathan Locke, Tobias Soloschenko
- See Also:
-
Field Summary
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_INITIALIZED, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING, RFLAG_CONTAINER_HAS_REMOVALS
-
Constructor Summary
ModifierConstructorDescriptionprotected
This constructor can be used if you overridegetImageResourceReference()
orgetImageResource()
Constructs an image directly from an image resource.Image
(String id, ResourceReference resourceReference, PageParameters resourceParameters, ResourceReference... resourceReferences) Constructs an image from an image resourcereference.Image
(String id, ResourceReference resourceReference, ResourceReference... resourceReferences) Constructs an image from an image resourcereference. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Adds random noise to the url every request to prevent the browser from caching the image.protected void
builds the sizes attribute of the img tagprotected String
Builds the src attributeprotected void
Builds the srcset attribute if multiple localizedImageResources are found as varargsboolean
Checks whether or not anIRequestListener
can be invoked on this component.Gets the cross-origin settingsprotected IResource
protected ResourceReference
protected boolean
Returns whether the component can be stateless.protected IModel<?>
Called when a null model is about to be retrieved in order to allow a subclass to provide an initial model.protected void
Processes the component tag.void
onComponentTagBody
(MarkupStream markupStream, ComponentTag openTag) Processes the body.void
Called when a request is received.void
Removes all sizes values.void
Removes all x values from the image src setboolean
Does invocation of this listener render the page.void
setCrossOrigin
(CrossOrigin crossOrigin) Sets the cross-origin settings
ANONYMOUS: Cross-origin CORS requests for the element will not have the credentials flag set.
USE_CREDENTIALS: Cross-origin CORS requests for the element will have the credentials flag set.
NO_CORS: The empty string is also a valid keyword, and maps to the Anonymous state.setDefaultModel
(IModel<?> model) Sets the given model.void
setImageResource
(IResource imageResource) void
setImageResourceReference
(ResourceReference resourceReference) void
setImageResourceReference
(ResourceReference resourceReference, PageParameters parameters) void
setImageResourceReferences
(PageParameters parameters, ResourceReference... resourceReferences) void
setImageResources
(IResource... imageResources) void
void
setXValues
(String... values) protected boolean
Adding an image toAjaxRequestTarget
most of the times mean that the image has changes and must be re-rendered.Methods inherited from class org.apache.wicket.markup.html.WebComponent
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession, onRender
Methods inherited from class org.apache.wicket.Component
add, addStateChange, beforeRender, canCallListenerAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, get, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMarkupTag, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, internalInitialize, internalOnModelChanged, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onAfterRender, onBeforeRender, onConfigure, onDetach, onEvent, onInitialize, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPart, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, toString, toString, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrap
-
Constructor Details
-
Image
This constructor can be used if you overridegetImageResourceReference()
orgetImageResource()
- Parameters:
id
-
-
Image
public Image(String id, ResourceReference resourceReference, ResourceReference... resourceReferences) Constructs an image from an image resourcereference. That resource reference will bind its resource to the current SharedResources. If you are using non sticky session clustering and the resource reference is pointing to a Resource that isn't guaranteed to be on every server, for example a dynamic image or resources that aren't added with a IInitializer at application startup. Then if only that resource is requested from another server, without the rendering of the page, the image won't be there and will result in a broken link.- Parameters:
id
- See ComponentresourceReference
- The shared image resource used in the src attributeresourceReferences
- The shared image resources used in the srcset attribute
-
Image
public Image(String id, ResourceReference resourceReference, PageParameters resourceParameters, ResourceReference... resourceReferences) Constructs an image from an image resourcereference. That resource reference will bind its resource to the current SharedResources. If you are using non sticky session clustering and the resource reference is pointing to a Resource that isn't guaranteed to be on every server, for example a dynamic image or resources that aren't added with a IInitializer at application startup. Then if only that resource is requested from another server, without the rendering of the page, the image won't be there and will result in a broken link.- Parameters:
id
- See ComponentresourceReference
- The shared image resource used in the src attributeresourceParameters
- The resource parametersresourceReferences
- The shared image resources used in the srcset attribute
-
Image
Constructs an image directly from an image resource. This one doesn't have the 'non sticky session clustering' problem that the ResourceReference constructor has. But this will result in a non 'stable' url and the url will have request parameters.- Parameters:
id
- See ComponentimageResource
- The image resource used in the src attributeimageResources
- The image resource used in the srcset attribute
-
Image
- See Also:
-
Image
- Parameters:
id
- See Componentstring
- Name of image- See Also:
-
-
Method Details
-
rendersPage
Description copied from interface:IRequestListener
Does invocation of this listener render the page.- Specified by:
rendersPage
in interfaceIRequestListener
- Returns:
- default
true
, i.e. aRenderPageRequestHandler
is schedules after invocation
-
onRequest
Description copied from interface:IRequestListener
Called when a request is received.- Specified by:
onRequest
in interfaceIRequestListener
-
setImageResource
- Parameters:
imageResource
- The new ImageResource to set.
-
setImageResources
- Parameters:
imageResources
- the new ImageResource to set.
-
setImageResourceReference
- Parameters:
resourceReference
- The shared ImageResource to set.
-
setImageResourceReference
public void setImageResourceReference(ResourceReference resourceReference, PageParameters parameters) - Parameters:
resourceReference
- The resource reference to set.parameters
- the parameters to be applied to the localized image resource
-
setImageResourceReferences
public void setImageResourceReferences(PageParameters parameters, ResourceReference... resourceReferences) - Parameters:
parameters
- Set the resource parameters for the resource.resourceReferences
- The resource references to set.
-
setXValues
- Parameters:
values
- the x values to be used in the srcset
-
removeXValues
Removes all x values from the image src set -
setSizes
- Parameters:
sizes
- the sizes to be used in the size
-
removeSizes
Removes all sizes values. The corresponding attribute will not be rendered anymore. -
setDefaultModel
Description copied from class:Component
Sets the given model.WARNING: DO NOT OVERRIDE THIS METHOD UNLESS YOU HAVE A VERY GOOD REASON FOR IT. OVERRIDING THIS MIGHT OPEN UP SECURITY LEAKS AND BREAK BACK-BUTTON SUPPORT.
- Overrides:
setDefaultModel
in classComponent
- Parameters:
model
- The model- Returns:
- This
- See Also:
-
getImageResource
- Returns:
- Resource returned from subclass
-
getImageResourceReference
- Returns:
- ResourceReference returned from subclass
-
initModel
Description copied from class:Component
Called when a null model is about to be retrieved in order to allow a subclass to provide an initial model.By default this implementation looks components in the parent chain owning a
IComponentInheritedModel
to provide a model for this component viaIComponentInheritedModel.wrapOnInheritance(Component)
.For example a
FormComponent
has the opportunity to instantiate a model on the fly using itsid
and the containingForm
's model, if the form holds aCompoundPropertyModel
. -
onComponentTag
Description copied from class:Component
Processes the component tag. Overrides of this method most likely should call the super implementation.- Overrides:
onComponentTag
in classComponent
- Parameters:
tag
- Tag to modify- See Also:
-
buildSrcSetAttribute
Builds the srcset attribute if multiple localizedImageResources are found as varargs- Parameters:
tag
- the component tag
-
buildSrcAttribute
Builds the src attribute- Parameters:
tag
- the component tag- Returns:
- the value of the src attribute
-
buildSizesAttribute
builds the sizes attribute of the img tag- Parameters:
tag
- the component tag
-
shouldAddAntiCacheParameter
Adding an image toAjaxRequestTarget
most of the times mean that the image has changes and must be re-rendered.With this method the user may change this default behavior for some of her images.
- Returns:
true
to add the anti cache request parameter,false
- otherwise
-
addAntiCacheParameter
Adds random noise to the url every request to prevent the browser from caching the image.- Parameters:
tag
-
-
getStatelessHint
Description copied from class:Component
Returns whether the component can be stateless. Also the component behaviors must be stateless, otherwise the component will be treat as stateful. In order for page to be stateless (and not to be stored in session), all components (and component behaviors) must be stateless.- Overrides:
getStatelessHint
in classComponent
- Returns:
- whether the component can be stateless
- See Also:
-
onComponentTagBody
Description copied from class:Component
Processes the body.- Overrides:
onComponentTagBody
in classComponent
- Parameters:
markupStream
- The markup streamopenTag
- The open tag for the body- See Also:
-
canCallListener
Description copied from class:Component
Checks whether or not anIRequestListener
can be invoked on this component. Usually components deny these invocations if they are either invisible or disabled in hierarchy.WARNING: be careful when overriding this method because it may open security holes - such as allowing a user to click on a link that should be disabled.
Example usecase for overriding: Suppose you are building an component that displays images. The component generates a callback to itself using
IRequestListener
interface and uses this callback to stream image data. If such a component is placed inside a disabledWebMarkupContainer
we still want to allow the invocation of the request listener callback method so that image data can be streamed. Such a component would override this method and return true.- Overrides:
canCallListener
in classComponent
- Returns:
- true iff the listener method can be invoked on this component
-
getCrossOrigin
Gets the cross-origin settings- Returns:
- the cross-origins settings
- See Also:
-
setCrossOrigin
Sets the cross-origin settings
ANONYMOUS: Cross-origin CORS requests for the element will not have the credentials flag set.
USE_CREDENTIALS: Cross-origin CORS requests for the element will have the credentials flag set.
NO_CORS: The empty string is also a valid keyword, and maps to the Anonymous state. The attribute's invalid value default is the Anonymous state. The missing value default, used when the attribute is omitted, is the No CORS state- Parameters:
crossOrigin
- the cross-origins settings to set
-