Class 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
,IHierarchical<Component>
,IClusterable
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_SEPARATOR
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
ConstructorDescriptionPalette
(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 String
buildJSCall
(String funcName) builds javascript handler callvoid
Converts and validates the conversion of the raw input string into the object specified byFormComponent.getType()
and records any thrownConversionException
s.IChoiceRenderer<? super T>
Collection<? extends T>
protected Component
Returns recorder component.int
getRows()
protected Component
final boolean
Return true if the palette is enabled, false otherwiseprotected boolean
Override this method if you do not want to localize the display values of the generated options.protected Component
factory method for the addAll componentprotected Component
factory method for the addcomponentprotected Component
newAvailableHeader
(String componentId) factory method for the available items headerprotected Component
factory method for the available items componentprotected Component
factory method for the move down componentfactory method to create the tracker componentprotected Component
factory method for the removeAll componentprotected Component
factory method for the remove componentprotected Component
newSelectedHeader
(String componentId) factory method for the selected items headerprotected Component
factory method for the selected items componentprotected Component
factory method for the move up componentprotected void
Called on all visible components before any component is rendered.protected void
onDetach()
Sets the temporary converted input value to null.void
renderHead
(IHeaderResponse response) Renders header contributionsfinal void
The 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, onComponentTag
Methods 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, visitFormComponentsPostOrder
Methods inherited from class org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
getLabel
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
Methods 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, visitChildren
Methods 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, wrap
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.wicket.IGenericComponent
getDefaultModel, getDefaultModelObject, getModel, getModelObject, setDefaultModel, setDefaultModelObject, setModel, setModelObject
Methods inherited from interface org.apache.wicket.IQueueRegion
dequeue, getRegionMarkup, newDequeueContext
Methods 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
Description copied from class:Component
Called on all visible components before any component is rendered.NOTE: If you override this, you *must* call super.onBeforeRender() within your implementation. Because this method is responsible for cascading
Changes to the component tree can be made only before calling super.onBeforeRender().Component.onBeforeRender()
call to its children it is strongly recommended that super call is made at the end of the override.- Overrides:
onBeforeRender
in classFormComponent<Collection<T>>
- See Also:
-
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 receivesonchange
javascript 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
Description copied from class:FormComponent
Converts and validates the conversion of the raw input string into the object specified byFormComponent.getType()
and records any thrownConversionException
s. Converted value is available throughFormComponent.getConvertedInput()
.Usually the user should do custom conversions by specifying an
DO NOT CALL THIS METHOD DIRECTLY UNLESS YOU ARE SURE WHAT YOU ARE DOING. USUALLY UPDATING YOUR MODEL IS HANDLED BY THE FORM, NOT DIRECTLY BY YOU.IConverter
by registering it with the application by overridingApplication.getConverterLocator()
, or at the component level by overridingComponent.getConverter(Class)
. -
updateModel
The model object is assumed to be a Collection, and it is modified in-place. ThenIModel.setObject(Object)
is called with the same instance: it allows the Model to be notified of changes even whenModel.getObject()
returns a differentCollection
at every invocation.- Specified by:
updateModel
in interfaceIFormModelUpdateListener
- Overrides:
updateModel
in 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
Description copied from class:FormComponent
Sets the temporary converted input value to null.- Overrides:
onDetach
in classFormComponent<Collection<T>>
- See Also:
-
renderHead
Renders header contributions- Specified by:
renderHead
in interfaceIHeaderContributor
- Overrides:
renderHead
in classComponent
- Parameters:
response
-
-