public abstract class RatingPanel extends Panel
onRated(int, org.apache.wicket.ajax.AjaxRequestTarget)
to provide the calculation
of the rating, and onIsStarActive(int)
to indicate whether to render an active star or
an inactive star.
Active stars are the stars that show the rating, inactive stars are the left overs. E.G. a rating
of 3.4 on a scale of 5 stars will render 3 active stars, and 2 inactive stars (provided that the
onIsStarActive(int)
returns true
for each of the first three stars).
Use this component in the following way:
add(new RatingPanel("rating", new PropertyModel(rating, "rating"), 5) { protected boolean onIsStarActive(int star) { return rating.isActive(star); } protected void onRated(int rating, AjaxRequestTarget target) { rating1.addRating(rating); } });The user of this component is responsible for creating a model that supplies a Double (or Float) value for the rating message, however the rating panel doesn't necessarily have to contain a float or number rating value.
Though not obligatory, you could also supply a value for the number of votes cast, which allows the component to render a more complete message in the rating label.
newRatingLabel(String, IModel, IModel)
method and create another label instead, based on
the provided models. If you do so, and use another system of rating than returning a Float or
Double, then you should also customize the rating resource bundle to reflect your message. The
default resource bundle assumes a numeric value for the rating.
rating.simple=Rated {0,number,#.#} rating.complete=Rated {0,number,#.#} from {1,number,#} votes
getActiveStarUrl(int)
and
getInactiveStarUrl(int)
methods. Using the iteration parameter it is possible to use a
different image for each star, creating a fade effect or something similar.Modifier and Type | Field and Description |
---|---|
static ResourceReference |
STAR0
Star image for no selected star
|
static ResourceReference |
STAR1
Star image for selected star
|
ENABLE, FLAG_AFTER_RENDERING, FLAG_INITIALIZED, FLAG_PREPARED_FOR_RENDER, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RENDERING, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING
Constructor and Description |
---|
RatingPanel(String id)
Constructs a rating component with 5 stars, using a compound property model as its model to
retrieve the rating.
|
RatingPanel(String id,
IModel<? extends Number> rating)
Constructs a rating component with 5 stars, using the rating for retrieving the rating.
|
RatingPanel(String id,
IModel<? extends Number> rating,
IModel<Integer> nrOfStars,
IModel<Integer> nrOfVotes,
IModel<Boolean> hasVoted,
boolean addDefaultCssStyle)
Constructs a rating panel with nrOfStars stars, where the rating model is used to retrieve
the rating, the nrOfVotes model used to retrieve the number of votes cast and the hasVoted
model to retrieve whether the user already had cast a vote.
|
RatingPanel(String id,
IModel<? extends Number> rating,
int nrOfStars,
boolean addDefaultCssStyle)
Constructs a rating component with nrOfStars stars, using the rating for retrieving the
rating.
|
RatingPanel(String id,
IModel<? extends Number> rating,
int nrOfStars,
IModel<Integer> nrOfVotes,
boolean addDefaultCssStyle)
Constructs a rating panel with nrOfStars stars, where the rating model is used to retrieve
the rating, the nrOfVotes model to retrieve the number of casted votes.
|
RatingPanel(String id,
int nrOfStars)
Constructs a rating component with nrOfStars stars, using a compound property model as its
model to retrieve the rating.
|
Modifier and Type | Method and Description |
---|---|
protected String |
getActiveStarUrl(int iteration)
Returns the url pointing to the image of active stars, is used to set the URL for the image
of an active star.
|
protected String |
getInactiveStarUrl(int iteration)
Returns the url pointing to the image of inactive stars, is used to set the URL for the image
of an inactive star.
|
protected Component |
newRatingLabel(String id,
IModel<? extends Number> rating,
IModel<Integer> nrOfVotes)
Creates a new rating label, showing a message like 'Rated 5.4 from 53 votes'.
|
protected Component |
newRatingStarBar(String id,
IModel<Integer> nrOfStars)
Creates a new bar filled with stars to click on.
|
protected abstract boolean |
onIsStarActive(int star)
Returns
true when the star identified by its sequence number should be shown as
active. |
protected abstract void |
onRated(int rating,
AjaxRequestTarget target)
Notification of a click on a rating star.
|
void |
renderHead(IHeaderResponse response)
Render to the web response whatever the component wants to contribute to the head section.
|
RatingPanel |
setRatingLabelVisible(boolean visible)
Sets the visibility of the rating label.
|
getRegionMarkup, newMarkupSourcingStrategy
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onAfterRenderChildren, onComponentTagBody, onDetach, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren, visitChildren, visitChildren
add, addStateChange, afterRender, beforeRender, canCallListenerInterface, canCallListenerInterfaceAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, 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, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalOnModelChanged, internalPrepareForRender, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onBeforeRender, onComponentTag, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setRequestFlag, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, visitParents, warn, wrap
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
dequeue, newDequeueContext
public static final ResourceReference STAR0
public static final ResourceReference STAR1
public RatingPanel(String id)
id
- the component id.public RatingPanel(String id, IModel<? extends Number> rating)
id
- the component idrating
- the model to get the ratingpublic RatingPanel(String id, int nrOfStars)
id
- the component idnrOfStars
- the number of stars to displaypublic RatingPanel(String id, IModel<? extends Number> rating, int nrOfStars, boolean addDefaultCssStyle)
id
- the component idrating
- the model to get the ratingnrOfStars
- the number of stars to displayaddDefaultCssStyle
- should this component render its own default CSS style?public RatingPanel(String id, IModel<? extends Number> rating, int nrOfStars, IModel<Integer> nrOfVotes, boolean addDefaultCssStyle)
id
- the component idrating
- the model to get the ratingnrOfStars
- the number of stars to displaynrOfVotes
- the number of cast votesaddDefaultCssStyle
- should this component render its own default CSS style?public RatingPanel(String id, IModel<? extends Number> rating, IModel<Integer> nrOfStars, IModel<Integer> nrOfVotes, IModel<Boolean> hasVoted, boolean addDefaultCssStyle)
id
- the component id.rating
- the (calculated) rating, i.e. 3.4nrOfStars
- the number of stars to displaynrOfVotes
- the number of cast voteshasVoted
- has the user already voted?addDefaultCssStyle
- should this component render its own default CSS style?public void renderHead(IHeaderResponse response)
Component
renderHead
in interface IHeaderContributor
renderHead
in class Component
response
- Response objectprotected Component newRatingStarBar(String id, IModel<Integer> nrOfStars)
id
- the bar idnrOfStars
- the number of stars to generateprotected Component newRatingLabel(String id, IModel<? extends Number> rating, IModel<Integer> nrOfVotes)
id
- the id of the labelrating
- the model containing the ratingnrOfVotes
- the model containing the number of votes (may be null)protected String getActiveStarUrl(int iteration)
iteration
- the sequence number of the starprotected String getInactiveStarUrl(int iteration)
iteration
- the sequence number of the starpublic RatingPanel setRatingLabelVisible(boolean visible)
visible
- true when the label should be visibleprotected abstract boolean onIsStarActive(int star)
true
when the star identified by its sequence number should be shown as
active.star
- the sequence number of the star (ranging from 0 to nrOfStars)true
when the star should be rendered as activeprotected abstract void onRated(int rating, AjaxRequestTarget target)
rating
- the number of the star that is clicked, ranging from 1 to nrOfStarstarget
- the request target, null if the request is a regular, non-AJAX request.Copyright © 2006–2021 Apache Software Foundation. All rights reserved.