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<org.apache.wicket.Component>,org.apache.wicket.event.IEventSink,org.apache.wicket.event.IEventSource,org.apache.wicket.feedback.IFeedbackContributor,org.apache.wicket.IConverterLocator,org.apache.wicket.IGenericComponent<Collection<T>,org.apache.wicket.markup.html.form.FormComponent<Collection<T>>>,org.apache.wicket.IMetadataContext<Serializable,org.apache.wicket.Component>,org.apache.wicket.IQueueRegion,org.apache.wicket.markup.html.form.IFormModelUpdateListener,org.apache.wicket.markup.html.form.IFormVisitorParticipant,org.apache.wicket.markup.html.form.ILabelProvider<String>,org.apache.wicket.markup.html.IHeaderContributor,org.apache.wicket.request.component.IRequestableComponent,org.apache.wicket.util.IHierarchical<org.apache.wicket.Component>,org.apache.wicket.util.io.IClusterable
public class Palette<T> extends org.apache.wicket.markup.html.form.FormComponentPanel<Collection<T>>
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 containedRecorderby overridingnewRecorderComponent()and callingFormComponent.processInput():
You can add aPalette 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; } }DefaultThemeto style this component in a left to right fashion.- Author:
- Igor Vaynberg ( ivaynberg )
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description Palette(String id, org.apache.wicket.model.IModel<? extends Collection<T>> choicesModel, org.apache.wicket.markup.html.form.IChoiceRenderer<? super T> choiceRenderer, int rows, boolean allowOrder)Palette(String id, org.apache.wicket.model.IModel<? extends Collection<T>> model, org.apache.wicket.model.IModel<? extends Collection<? extends T>> choicesModel, org.apache.wicket.markup.html.form.IChoiceRenderer<? super T> choiceRenderer, int rows, boolean allowOrder)Palette(String id, org.apache.wicket.model.IModel<? extends Collection<T>> model, org.apache.wicket.model.IModel<? extends Collection<? extends T>> choicesModel, org.apache.wicket.markup.html.form.IChoiceRenderer<? super T> choiceRenderer, int rows, boolean allowOrder, boolean allowMoveAll)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected StringbuildJSCall(String funcName)builds javascript handler callvoidconvertInput()StringgetAddAllOnClickJS()protected Map<String,String>getAdditionalAttributesForChoices(Object choice)protected Map<String,String>getAdditionalAttributesForSelection(Object choice)StringgetAddOnClickJS()org.apache.wicket.markup.html.form.IChoiceRenderer<? super T>getChoiceRenderer()Collection<? extends T>getChoices()protected org.apache.wicket.ComponentgetChoicesComponent()StringgetChoicesOnFocusJS()StringgetDownOnClickJS()Collection<T>getModelCollection()Recorder<T>getRecorderComponent()Returns recorder component.StringgetRemoveAllOnClickJS()StringgetRemoveOnClickJS()intgetRows()Iterator<T>getSelectedChoices()protected org.apache.wicket.ComponentgetSelectionComponent()StringgetSelectionOnFocusJS()Iterator<T>getUnselectedChoices()StringgetUpOnClickJS()booleanisPaletteEnabled()Return true if the palette is enabled, false otherwiseprotected booleanlocalizeDisplayValues()Override this method if you do not want to localize the display values of the generated options.protected org.apache.wicket.ComponentnewAddAllComponent()factory method for the addAll componentprotected org.apache.wicket.ComponentnewAddComponent()factory method for the addcomponentprotected org.apache.wicket.ComponentnewAvailableHeader(String componentId)factory method for the available items headerprotected org.apache.wicket.ComponentnewChoicesComponent()factory method for the available items componentprotected org.apache.wicket.ComponentnewDownComponent()factory method for the move down componentprotected Recorder<T>newRecorderComponent()factory method to create the tracker componentprotected org.apache.wicket.ComponentnewRemoveAllComponent()factory method for the removeAll componentprotected org.apache.wicket.ComponentnewRemoveComponent()factory method for the remove componentprotected org.apache.wicket.ComponentnewSelectedHeader(String componentId)factory method for the selected items headerprotected org.apache.wicket.ComponentnewSelectionComponent()factory method for the selected items componentprotected org.apache.wicket.ComponentnewUpComponent()factory method for the move up componentprotected voidonBeforeRender()protected voidonDetach()voidrenderHead(org.apache.wicket.markup.head.IHeaderResponse response)Renders header contributionsvoidupdateModel()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.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, 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 Detail
-
Palette
public Palette(String id, org.apache.wicket.model.IModel<? extends Collection<T>> choicesModel, org.apache.wicket.markup.html.form.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, org.apache.wicket.model.IModel<? extends Collection<T>> model, org.apache.wicket.model.IModel<? extends Collection<? extends T>> choicesModel, org.apache.wicket.markup.html.form.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, org.apache.wicket.model.IModel<? extends Collection<T>> model, org.apache.wicket.model.IModel<? extends Collection<? extends T>> choicesModel, org.apache.wicket.markup.html.form.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 Detail
-
onBeforeRender
protected void onBeforeRender()
- Overrides:
onBeforeRenderin classorg.apache.wicket.markup.html.form.FormComponent<Collection<T>>
-
isPaletteEnabled
public final boolean isPaletteEnabled()
Return true if the palette is enabled, false otherwise- Returns:
- true if the palette is enabled, false otherwise
-
getSelectedChoices
public Iterator<T> getSelectedChoices()
- Returns:
- iterator over selected choices
-
getUnselectedChoices
public Iterator<T> getUnselectedChoices()
- Returns:
- iterator over unselected choices
-
newRecorderComponent
protected Recorder<T> newRecorderComponent()
factory method to create the tracker component- Returns:
- tracker component
-
newAvailableHeader
protected org.apache.wicket.Component newAvailableHeader(String componentId)
factory method for the available items header- Parameters:
componentId- component id of the returned header component- Returns:
- available items component
-
newSelectedHeader
protected org.apache.wicket.Component newSelectedHeader(String componentId)
factory method for the selected items header- Parameters:
componentId- component id of the returned header component- Returns:
- header component
-
newDownComponent
protected org.apache.wicket.Component newDownComponent()
factory method for the move down component- Returns:
- move down component
-
newUpComponent
protected org.apache.wicket.Component newUpComponent()
factory method for the move up component- Returns:
- move up component
-
newRemoveComponent
protected org.apache.wicket.Component newRemoveComponent()
factory method for the remove component- Returns:
- remove component
-
newAddComponent
protected org.apache.wicket.Component newAddComponent()
factory method for the addcomponent- Returns:
- add component
-
newSelectionComponent
protected org.apache.wicket.Component newSelectionComponent()
factory method for the selected items component- Returns:
- selected items component
-
newAddAllComponent
protected org.apache.wicket.Component newAddAllComponent()
factory method for the addAll component- Returns:
- addAll component
-
newRemoveAllComponent
protected org.apache.wicket.Component newRemoveAllComponent()
factory method for the removeAll component- Returns:
- removeAll component
-
getAdditionalAttributesForSelection
protected Map<String,String> getAdditionalAttributesForSelection(Object choice)
- Parameters:
choice-- Returns:
- null
- See Also:
AbstractOptions.getAdditionalAttributes(Object)
-
newChoicesComponent
protected org.apache.wicket.Component newChoicesComponent()
factory method for the available items component- Returns:
- available items component
-
localizeDisplayValues
protected boolean 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
protected Map<String,String> getAdditionalAttributesForChoices(Object choice)
- Parameters:
choice-- Returns:
- null
- See Also:
AbstractOptions.getAdditionalAttributes(Object)
-
getChoicesComponent
protected org.apache.wicket.Component getChoicesComponent()
-
getSelectionComponent
protected org.apache.wicket.Component getSelectionComponent()
-
getRecorderComponent
public final Recorder<T> 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
public Collection<? extends T> getChoices()
- Returns:
- collection representing all available items
-
getModelCollection
public Collection<T> getModelCollection()
- Returns:
- collection representing selected items
-
getChoiceRenderer
public org.apache.wicket.markup.html.form.IChoiceRenderer<? super T> getChoiceRenderer()
- Returns:
- choice renderer
-
getRows
public int getRows()
- Returns:
- items visible without scrolling
-
convertInput
public void convertInput()
- Overrides:
convertInputin classorg.apache.wicket.markup.html.form.FormComponent<Collection<T>>
-
updateModel
public final void 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 interfaceorg.apache.wicket.markup.html.form.IFormModelUpdateListener- Overrides:
updateModelin classorg.apache.wicket.markup.html.form.FormComponent<Collection<T>>- See Also:
FormComponent.updateModel()
-
buildJSCall
protected String buildJSCall(String funcName)
builds javascript handler call- Parameters:
funcName- name of javascript function to call- Returns:
- string representing the call tho the function with palette params
-
getChoicesOnFocusJS
public String getChoicesOnFocusJS()
- Returns:
- choices component on focus javascript handler
-
getSelectionOnFocusJS
public String getSelectionOnFocusJS()
- Returns:
- selection component on focus javascript handler
-
getAddOnClickJS
public String getAddOnClickJS()
- Returns:
- add action javascript handler
-
getRemoveOnClickJS
public String getRemoveOnClickJS()
- Returns:
- remove action javascript handler
-
getUpOnClickJS
public String getUpOnClickJS()
- Returns:
- move up action javascript handler
-
getDownOnClickJS
public String getDownOnClickJS()
- Returns:
- move down action javascript handler
-
getAddAllOnClickJS
public String getAddAllOnClickJS()
- Returns:
- addAll action javascript handler
-
getRemoveAllOnClickJS
public String getRemoveAllOnClickJS()
- Returns:
- removeAll action javascript handler
-
onDetach
protected void onDetach()
- Overrides:
onDetachin classorg.apache.wicket.markup.html.form.FormComponent<Collection<T>>
-
renderHead
public void renderHead(org.apache.wicket.markup.head.IHeaderResponse response)
Renders header contributions- Specified by:
renderHeadin interfaceorg.apache.wicket.markup.html.IHeaderContributor- Overrides:
renderHeadin classorg.apache.wicket.Component- Parameters:
response-
-
-