Module org.apache.wicket.extensions
Class Palette<T>
java.lang.Object
org.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
org.apache.wicket.markup.html.form.FormComponent<T>
org.apache.wicket.markup.html.form.FormComponentPanel<Collection<T>>
org.apache.wicket.extensions.markup.html.form.palette.Palette<T>
- Type Parameters:
T- Type of model object
- All Implemented Interfaces:
Serializable,Iterable<Component>,IEventSink,IEventSource,IFeedbackContributor,IConverterLocator,IGenericComponent<Collection<T>,,FormComponent<Collection<T>>> IMetadataContext<Serializable,,Component> IQueueRegion,IFormModelUpdateListener,IFormVisitorParticipant,ILabelProvider<String>,IHeaderContributor,IRequestableComponent,org.apache.wicket.util.IHierarchical<Component>,org.apache.wicket.util.io.IClusterable
Palette is a component that allows the user to easily select and order multiple items by moving
them from one select box into another.
When creating a Palette object make sure your IChoiceRenderer returns a specific ID, not the index.
Ajaxifying the palette: If you want to update a Palette with an
AjaxFormComponentUpdatingBehavior, you have to attach it to the contained
Recorder by overriding newRecorderComponent() and calling
FormComponent.processInput():
Palette palette=new Palette(...) {
protected Recorder newRecorderComponent()
{
Recorder recorder=super.newRecorderComponent();
recorder.add(new AjaxFormComponentUpdatingBehavior("change") {
protected void onUpdate(AjaxRequestTarget target) {
processInput(); // let Palette process input too
...
}
});
return recorder;
}
}
You can add a DefaultTheme to style this component in a left to right fashion.- Author:
- Igor Vaynberg ( ivaynberg )
- See Also:
-
Field Summary
Fields inherited from class org.apache.wicket.markup.html.form.FormComponent
FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULL, VALUE_SEPARATORFields 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
ConstructorsConstructorDescriptionPalette(String id, IModel<? extends Collection<T>> choicesModel, IChoiceRenderer<? super T> choiceRenderer, int rows, boolean allowOrder) Palette(String id, IModel<? extends Collection<T>> model, IModel<? extends Collection<? extends T>> choicesModel, IChoiceRenderer<? super T> choiceRenderer, int rows, boolean allowOrder) Palette(String id, IModel<? extends Collection<T>> model, IModel<? extends Collection<? extends T>> choicesModel, IChoiceRenderer<? super T> choiceRenderer, int rows, boolean allowOrder, boolean allowMoveAll) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected StringbuildJSCall(String funcName) builds javascript handler callvoidIChoiceRenderer<? super T>Collection<? extends T>protected ComponentReturns recorder component.intgetRows()protected Componentfinal booleanReturn true if the palette is enabled, false otherwiseprotected booleanOverride this method if you do not want to localize the display values of the generated options.protected Componentfactory method for the addAll componentprotected Componentfactory method for the addcomponentprotected ComponentnewAvailableHeader(String componentId) factory method for the available items headerprotected Componentfactory method for the available items componentprotected Componentfactory method for the move down componentfactory method to create the tracker componentprotected Componentfactory method for the removeAll componentprotected Componentfactory method for the remove componentprotected ComponentnewSelectedHeader(String componentId) factory method for the selected items headerprotected Componentfactory method for the selected items componentprotected Componentfactory method for the move up componentprotected voidprotected voidonDetach()voidrenderHead(IHeaderResponse response) Renders header contributionsfinal voidThe model object is assumed to be a Collection, and it is modified in-place.Methods inherited from class org.apache.wicket.markup.html.form.FormComponentPanel
checkRequired, clearInput, newMarkupSourcingStrategy, onComponentTagMethods inherited from class org.apache.wicket.markup.html.form.FormComponent
add, add, convertValue, error, getConvertedInput, getDefaultLabel, getDefaultLabel, getForm, getInput, getInputAsArray, getInputName, getModelValue, getParameterValues, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isInputNullable, isMultiPart, isRequired, isValid, newValidatable, newValidationError, onDisabled, onInvalid, onValid, processChildren, processInput, remove, reportRequiredError, setConvertedInput, setLabel, setModelValue, setRequired, setType, shouldTrimInput, trim, updateAutoLabels, updateAutoLabels, updateCollectionModel, valid, validate, validateRequired, validateValidators, visitComponentsPostOrder, visitFormComponentsPostOrderMethods inherited from class org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
getLabelMethods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSessionMethods inherited from class org.apache.wicket.MarkupContainer
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, getRegionMarkup, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildrenMethods inherited from class org.apache.wicket.Component
add, addStateChange, beforeRender, canCallListener, canCallListenerAfterExpiry, 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, getMarkupTag, 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, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, 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, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.wicket.IGenericComponent
getDefaultModel, getDefaultModelObject, getModel, getModelObject, setDefaultModel, setDefaultModelObject, setModel, setModelObjectMethods inherited from interface org.apache.wicket.IQueueRegion
dequeue, getRegionMarkup, newDequeueContextMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
Palette
public Palette(String id, IModel<? extends Collection<T>> choicesModel, IChoiceRenderer<? super T> choiceRenderer, int rows, boolean allowOrder) - Parameters:
id- Component idchoicesModel- Model representing collection of all available choiceschoiceRenderer- Render used to render choices. This must use unique IDs for the objects, not the index.rows- Number of choices to be visible on the screen with out scrollingallowOrder- Allow user to move selections up and down
-
Palette
public Palette(String id, IModel<? extends Collection<T>> model, IModel<? extends Collection<? extends T>> choicesModel, IChoiceRenderer<? super T> choiceRenderer, int rows, boolean allowOrder) - Parameters:
id- Component idmodel- Model representing collection of user's selectionschoicesModel- Model representing collection of all available choiceschoiceRenderer- Render used to render choices. This must use unique IDs for the objects, not the index.rows- Number of choices to be visible on the screen with out scrollingallowOrder- Allow user to move selections up and down
-
Palette
public Palette(String id, IModel<? extends Collection<T>> model, IModel<? extends Collection<? extends T>> choicesModel, IChoiceRenderer<? super T> choiceRenderer, int rows, boolean allowOrder, boolean allowMoveAll) Constructor.- Parameters:
id- Component idchoicesModel- Model representing collection of all available choiceschoiceRenderer- Render used to render choices. This must use unique IDs for the objects, not the index.rows- Number of choices to be visible on the screen with out scrollingallowOrder- Allow user to move selections up and downallowMoveAll- Allow user to add or remove all items at once
-
-
Method Details
-
onBeforeRender
- Overrides:
onBeforeRenderin classFormComponent<Collection<T>>
-
isPaletteEnabled
Return true if the palette is enabled, false otherwise- Returns:
- true if the palette is enabled, false otherwise
-
getSelectedChoices
- Returns:
- iterator over selected choices
-
getUnselectedChoices
- Returns:
- iterator over unselected choices
-
newRecorderComponent
factory method to create the tracker component- Returns:
- tracker component
-
newAvailableHeader
factory method for the available items header- Parameters:
componentId- component id of the returned header component- Returns:
- available items component
-
newSelectedHeader
factory method for the selected items header- Parameters:
componentId- component id of the returned header component- Returns:
- header component
-
newDownComponent
factory method for the move down component- Returns:
- move down component
-
newUpComponent
factory method for the move up component- Returns:
- move up component
-
newRemoveComponent
factory method for the remove component- Returns:
- remove component
-
newAddComponent
factory method for the addcomponent- Returns:
- add component
-
newSelectionComponent
factory method for the selected items component- Returns:
- selected items component
-
newAddAllComponent
factory method for the addAll component- Returns:
- addAll component
-
newRemoveAllComponent
factory method for the removeAll component- Returns:
- removeAll component
-
getAdditionalAttributesForSelection
- Parameters:
choice-- Returns:
- null
- See Also:
-
newChoicesComponent
factory method for the available items component- Returns:
- available items component
-
localizeDisplayValues
Override this method if you do not want to localize the display values of the generated options. By default true is returned.- Returns:
- true If you want to localize the display values, default == true
-
getAdditionalAttributesForChoices
- Parameters:
choice-- Returns:
- null
- See Also:
-
getChoicesComponent
-
getSelectionComponent
-
getRecorderComponent
Returns recorder component. Recorder component is a form component used to track the selection of the palette. It receivesonchangejavascript event whenever a change in selection occurs.- Returns:
- recorder component
-
getChoices
- Returns:
- collection representing all available items
-
getModelCollection
- Returns:
- collection representing selected items
-
getChoiceRenderer
- Returns:
- choice renderer
-
getRows
- Returns:
- items visible without scrolling
-
convertInput
- Overrides:
convertInputin classFormComponent<Collection<T>>
-
updateModel
The model object is assumed to be a Collection, and it is modified in-place. ThenModel.setObject(Object)is called with the same instance: it allows the Model to be notified of changes even whenModel.getObject()returns a differentCollectionat every invocation.- Specified by:
updateModelin interfaceIFormModelUpdateListener- Overrides:
updateModelin classFormComponent<Collection<T>>- See Also:
-
buildJSCall
builds javascript handler call- Parameters:
funcName- name of javascript function to call- Returns:
- string representing the call tho the function with palette params
-
getChoicesOnFocusJS
- Returns:
- choices component on focus javascript handler
-
getSelectionOnFocusJS
- Returns:
- selection component on focus javascript handler
-
getAddOnClickJS
- Returns:
- add action javascript handler
-
getRemoveOnClickJS
- Returns:
- remove action javascript handler
-
getUpOnClickJS
- Returns:
- move up action javascript handler
-
getDownOnClickJS
- Returns:
- move down action javascript handler
-
getAddAllOnClickJS
- Returns:
- addAll action javascript handler
-
getRemoveAllOnClickJS
- Returns:
- removeAll action javascript handler
-
onDetach
- Overrides:
onDetachin classFormComponent<Collection<T>>
-
renderHead
Renders header contributions- Specified by:
renderHeadin interfaceIHeaderContributor- Overrides:
renderHeadin classComponent- Parameters:
response-
-