org.apache.wicket.markup.html.form.upload
Class MultiFileUploadField

java.lang.Object
  extended by org.apache.wicket.Component
      extended by org.apache.wicket.MarkupContainer
          extended by org.apache.wicket.markup.html.WebMarkupContainer
              extended by org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
                  extended by org.apache.wicket.markup.html.form.FormComponent<T>
                      extended by org.apache.wicket.markup.html.form.FormComponentPanel<java.util.Collection<FileUpload>>
                          extended by org.apache.wicket.markup.html.form.upload.MultiFileUploadField
All Implemented Interfaces:
java.io.Serializable, java.lang.Iterable<Component>, IEventSink, IEventSource, IClusterable, IConverterLocator, IFormModelUpdateListener, IFormVisitorParticipant, ILabelProvider<java.lang.String>, IHeaderContributor, IRequestableComponent, IHierarchical<Component>

public class MultiFileUploadField
extends FormComponentPanel<java.util.Collection<FileUpload>>

Form component that allows the user to select multiple files to upload via a single <input type="file"/> field. Notice that this component clears its model at the end of the request, so the uploaded files MUST be processed within the request they were uploaded. Uses javascript implementation from http://the-stickman.com/web-development/javascript/upload-multiple -files-with-a-single-file-element/ For customizing caption text see RESOURCE_LIMITED and RESOURCE_UNLIMITED For an example of styling using CSS see the upload example in wicket-examples

Author:
Igor Vaynberg (ivaynberg)
See Also:
Serialized Form

Field Summary
static java.lang.String RESOURCE_LIMITED
          Resource key used to retrieve caption message for when a limit on the number of uploads is specified.
static java.lang.String RESOURCE_UNLIMITED
          Resource key used to retrieve caption message for when no limit on the number of uploads is specified.
static int UNLIMITED
          Represents an unlimited max count of uploads
 
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_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
MultiFileUploadField(java.lang.String id)
          Constructor
MultiFileUploadField(java.lang.String id, IModel<? extends java.util.Collection<FileUpload>> model)
          Constructor
MultiFileUploadField(java.lang.String id, IModel<? extends java.util.Collection<FileUpload>> model, int max)
          Constructor
MultiFileUploadField(java.lang.String id, int max)
          Constructor
 
Method Summary
protected  java.util.Collection<FileUpload> convertValue(java.lang.String[] value)
          Subclasses should overwrite this if the conversion is not done through the type field and the IConverter.
 java.lang.String[] getInputAsArray()
          Gets the request parameters for this component as strings.
 boolean isMultiPart()
           
protected  void onBeforeRender()
          Called just before a component is rendered.
protected  void onComponentTag(ComponentTag tag)
          Processes the component tag.
protected  void onDetach()
          Sets the temporary converted input value to null.
 void renderHead(IHeaderResponse response)
          Render to the web response whatever the component wants to contribute to the head section.
 void updateModel()
          See FormComponent.updateCollectionModel(FormComponent) for details on how the model is updated.
 
Methods inherited from class org.apache.wicket.markup.html.form.FormComponentPanel
checkRequired, newMarkupSourcingStrategy
 
Methods inherited from class org.apache.wicket.markup.html.form.FormComponent
add, add, clearInput, convertInput, error, getConvertedInput, getDefaultLabel, getDefaultLabel, getForm, getInput, getInputName, getModel, getModelObject, getModelValue, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isInputNullable, isRequired, isValid, newValidatable, onDisabled, onInvalid, onValid, processChildren, processInput, remove, setConvertedInput, setLabel, setModel, setModelObject, setModelValue, setRequired, setType, shouldTrimInput, trim, updateCollectionModel, valid, validate, validateRequired, validateValidators, visitComponentsPostOrder, visitFormComponentsPostOrder
 
Methods inherited from class org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
getLabel, setLabelInternal
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebPage, getWebRequest
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, contains, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, hasAssociatedMarkup, internalAdd, internalInitialize, iterator, iterator, onAfterRenderChildren, onComponentTagBody, onMarkupAttached, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, canCallListenerInterface, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, 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, getFeedbackMessage, 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, internalPrepareForRender, internalRenderComponent, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markRendering, modelChanged, modelChanging, onAfterRender, onConfigure, onEvent, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, 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, warn, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

UNLIMITED

public static final int UNLIMITED
Represents an unlimited max count of uploads

See Also:
Constant Field Values

RESOURCE_LIMITED

public static final java.lang.String RESOURCE_LIMITED
Resource key used to retrieve caption message for when a limit on the number of uploads is specified. The limit is represented via ${max} variable. Example: org.apache.wicket.mfu.caption.limited=Files (maximum ${max}):

See Also:
Constant Field Values

RESOURCE_UNLIMITED

public static final java.lang.String RESOURCE_UNLIMITED
Resource key used to retrieve caption message for when no limit on the number of uploads is specified. Example: org.apache.wicket.mfu.caption.unlimited=Files:

See Also:
Constant Field Values
Constructor Detail

MultiFileUploadField

public MultiFileUploadField(java.lang.String id)
Constructor

Parameters:
id -

MultiFileUploadField

public MultiFileUploadField(java.lang.String id,
                            int max)
Constructor

Parameters:
id -
max - max number of files a user can upload

MultiFileUploadField

public MultiFileUploadField(java.lang.String id,
                            IModel<? extends java.util.Collection<FileUpload>> model)
Constructor

Parameters:
id -
model -

MultiFileUploadField

public MultiFileUploadField(java.lang.String id,
                            IModel<? extends java.util.Collection<FileUpload>> model,
                            int max)
Constructor

Parameters:
id -
model -
max - max number of files a user can upload
Method Detail

onComponentTag

protected void onComponentTag(ComponentTag tag)
Description copied from class: FormComponentPanel
Processes the component tag.

Overrides:
onComponentTag in class FormComponentPanel<java.util.Collection<FileUpload>>
Parameters:
tag - Tag to modify
See Also:
FormComponentPanel.onComponentTag(org.apache.wicket.markup.ComponentTag)

onBeforeRender

protected void onBeforeRender()
Description copied from class: Component
Called just before a component is rendered.

NOTE: If you override this, you *must* call super.onBeforeRender() within your implementation. Because this method is responsible for cascading Component.onBeforeRender() call to its children it is strongly recommended that super call is made at the end of the override.

Overrides:
onBeforeRender in class Component
See Also:
Component.onBeforeRender()

isMultiPart

public boolean isMultiPart()
Overrides:
isMultiPart in class FormComponent<java.util.Collection<FileUpload>>
Returns:
True if this component encodes data in a multipart form submit

renderHead

public void renderHead(IHeaderResponse response)
Description copied from class: Component
Render to the web response whatever the component wants to contribute to the head section.

Specified by:
renderHead in interface IHeaderContributor
Overrides:
renderHead in class Component
Parameters:
response - Response object

getInputAsArray

public java.lang.String[] getInputAsArray()
Description copied from class: FormComponent
Gets the request parameters for this component as strings.

Overrides:
getInputAsArray in class FormComponent<java.util.Collection<FileUpload>>
Returns:
The values in the request for this component
See Also:
FormComponent.getInputAsArray()

convertValue

protected java.util.Collection<FileUpload> convertValue(java.lang.String[] value)
                                                 throws ConversionException
Description copied from class: FormComponent
Subclasses should overwrite this if the conversion is not done through the type field and the IConverter. WARNING: this method may be removed in future versions. If conversion fails then a ConversionException should be thrown

Overrides:
convertValue in class FormComponent<java.util.Collection<FileUpload>>
Parameters:
value - The value can be the getInput() or through a cookie
Returns:
The converted value. default returns just the given value
Throws:
ConversionException - If input can't be converted
See Also:
FormComponent.convertValue(java.lang.String[])

updateModel

public void updateModel()
See FormComponent.updateCollectionModel(FormComponent) for details on how the model is updated.

Specified by:
updateModel in interface IFormModelUpdateListener
Overrides:
updateModel in class FormComponent<java.util.Collection<FileUpload>>

onDetach

protected void onDetach()
Description copied from class: FormComponent
Sets the temporary converted input value to null.

Overrides:
onDetach in class FormComponent<java.util.Collection<FileUpload>>
See Also:
Component.onDetach()


Copyright © 2006-2011 Apache Software Foundation. All Rights Reserved.