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<M>
org.wicketstuff.select2.AbstractSelect2Choice<T,M>
- Type Parameters:
T- type of choice objectM- type of model object
- All Implemented Interfaces:
Serializable,Iterable<Component>,IEventSink,IEventSource,IFeedbackContributor,IConverterLocator,IGenericComponent<M,,FormComponent<M>> IMetadataContext<Serializable,,Component> IRequestListener,IFormModelUpdateListener,IFormVisitorParticipant,ILabelProvider<String>,IHeaderContributor,IRequestableComponent,IHierarchical<Component>,IClusterable
- Direct Known Subclasses:
Select2Choice,Select2MultiChoice
public abstract class AbstractSelect2Choice<T,M>
extends FormComponent<M>
implements IRequestListener
Base class for Select2 components
- Author:
- igor
- 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
ConstructorsConstructorDescriptionAbstractSelect2Choice(String id, IModel<M> model) ConstructorAbstractSelect2Choice(String id, IModel<M> model, ChoiceProvider<T> provider) Construct.AbstractSelect2Choice(String id, ChoiceProvider<T> provider) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidappendOptionHtml(AppendingStringBuffer buffer, T choice) Append a single option markup.protected final Collection<T>convertIdsToChoices(List<String> ids) Convert IDS into choices.final voidprotected abstract CharSequencecreateOptionsHtml(M currentValue) Creates the HTML option(s) markup representing the current value.static <T> voidgenerateJSON(String queryParam, ChoiceProvider<T> provider, OutputStream outputStream) Utility method to generate JSON response.static <T> voidgenerateJSON(ChoiceProvider<T> provider, OutputStream outputStream) Utility method to generate JSON response.protected final Mprotected StringgetEscapedJsString(String key) Escapes single quotes in localized strings to be used as JavaScript strings enclosed in single quotesprotected StringGets the markup id that is safe to use in jQuery by escaping dots in the defaultComponent.getMarkup()final ChoiceProvider<T>final SettingsReturns theSettings.protected booleanbooleanisAjax()booleanEmpty input is acceptableprotected voidProcesses the component tag.voidonComponentTagBody(MarkupStream markupStream, ComponentTag openTag) this method will add default optionsprotected voidprotected voidonDetach()voidprotected voidvoidfinal voidsetProvider(ChoiceProvider<T> provider) Sets the choice providerMethods inherited from class org.apache.wicket.markup.html.form.FormComponent
add, add, checkRequired, clearInput, convertValue, error, getConvertedInput, getDefaultLabel, getDefaultLabel, getForm, getInput, getInputAsArray, getInputName, getModelValue, getParameterValues, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isMultiPart, isRequired, isValid, newValidatable, newValidationError, onDisabled, onInvalid, onValid, processChildren, processInput, remove, reportRequiredError, setConvertedInput, setLabel, setModelValue, setRequired, setType, shouldTrimInput, trim, updateAutoLabels, updateCollectionModel, updateModel, 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, 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, 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, newMarkupSourcingStrategy, onAfterRender, onBeforeRender, 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, 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.IRequestListener
rendersPageMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
AbstractSelect2Choice
- Parameters:
id- markup id
-
AbstractSelect2Choice
Constructor- Parameters:
id- component idmodel- component model
-
AbstractSelect2Choice
Constructor.- Parameters:
id- component idprovider- choice provider
-
AbstractSelect2Choice
Construct.- Parameters:
id- markup idmodel- model for selectprovider- choice provider
-
-
Method Details
-
getSettings
Returns theSettings. The settings
closeOnSelect = true
escapeMarkup = "Utils.escapeMarkup"
width =Settings.Widths.RESOLVE;
are the the Select2 default as documented on https://select2.org/configuration/options-api, which are different from the default inSettings- Returns:
- Select2 settings for this component.
-
setProvider
Sets the choice provider- Parameters:
provider- provider to set
-
getProvider
- Returns:
- choice provider
-
convertInput
public final void convertInput()- Overrides:
convertInputin classFormComponent<M>
-
convertIdsToChoices
Convert IDS into choices.- Parameters:
ids- list of identities- Returns:
- collection of choices or empty collection
-
getJquerySafeMarkupId
Gets the markup id that is safe to use in jQuery by escaping dots in the defaultComponent.getMarkup()- Returns:
- markup id
-
getEscapedJsString
Escapes single quotes in localized strings to be used as JavaScript strings enclosed in single quotes- Parameters:
key- resource key for localized message- Returns:
- localized string with escaped single quotes
-
getCurrentValue
- Returns:
- current value, suitable for rendering as selected value in select2 component
-
onInitialize
protected void onInitialize()- Overrides:
onInitializein classMarkupContainer
-
onConfigure
protected void onConfigure()- Overrides:
onConfigurein classComponent
-
onEvent
- Specified by:
onEventin interfaceIEventSink- Overrides:
onEventin classComponent
-
getStatelessHint
protected boolean getStatelessHint()- Overrides:
getStatelessHintin classComponent
-
isAjax
public boolean isAjax() -
generateJSON
Utility method to generate JSON response.- Parameters:
provider-outputStream-
-
generateJSON
public static <T> void generateJSON(String queryParam, ChoiceProvider<T> provider, OutputStream outputStream) Utility method to generate JSON response.- Parameters:
provider-outputStream-queryParam- - parameter to be used as Ajax query param
-
onRequest
public void onRequest()- Specified by:
onRequestin interfaceIRequestListener
-
onDetach
protected void onDetach()- Overrides:
onDetachin classFormComponent<M>
-
appendOptionHtml
Append a single option markup.- Parameters:
buffer- buffer to append tochoice- choice to create option markup for
-
onComponentTag
Processes the component tag.- Overrides:
onComponentTagin classFormComponent<M>- Parameters:
tag- Tag to modify- See Also:
-
onComponentTagBody
this method will add default options- Overrides:
onComponentTagBodyin classMarkupContainer- Parameters:
markupStream- The markup streamopenTag- The open tag for the body
-
createOptionsHtml
Creates the HTML option(s) markup representing the current value.- Parameters:
currentValue- the current value- Returns:
- the HTML markup for any option(s)
-
isInputNullable
public boolean isInputNullable()Empty input is acceptable- Overrides:
isInputNullablein classFormComponent<M>
-