org.wicketstuff.async.components
Class ProgressButton

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<String>
                      extended by org.apache.wicket.markup.html.form.Button
                          extended by org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton
                              extended by org.wicketstuff.async.components.ProgressButton
All Implemented Interfaces:
Serializable, Iterable<Component>, IEventSink, IEventSource, IConverterLocator, IGenericComponent<String>, IFormModelUpdateListener, IFormSubmitter, IFormSubmittingComponent, IFormVisitorParticipant, ILabelProvider<String>, IHeaderContributor, IRequestableComponent, IHierarchical<Component>, IClusterable

public class ProgressButton
extends AjaxFallbackButton

A progress button which allows to control a Runnable. Each such button will refresh itself as given by by the Duration with which it was constructed. It represents a runnable by a AbstractTaskContainer. In order to create tasks, the button needs to be provided a IRunnableFactory.

See Also:
Serialized Form

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_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
ProgressButton(String id, Form<?> form, IModel<? extends AbstractTaskContainer> taskContainerModel, Duration duration)
           
ProgressButton(String id, Form<?> form, IModel<? extends AbstractTaskContainer> taskContainerModel, IRunnableFactory runnableFactory, Duration duration)
           
ProgressButton(String id, IModel<String> model, Form<?> form, IModel<? extends AbstractTaskContainer> taskContainerModel, Duration duration)
           
ProgressButton(String id, IModel<String> model, Form<?> form, IModel<? extends AbstractTaskContainer> taskContainerModel, IRunnableFactory runnableFactory, Duration duration)
           
 
Method Summary
 void addRefreshDependant(Component refreshDependant)
          Allows to add a component which is rerendered every time the button is rerendered.
protected  AbstractTaskContainer getTaskContainer()
           
 IModel<? extends AbstractTaskContainer> getTaskContainerModel()
           
protected  boolean isAllowInterrupt()
          This method can be overridden to implement a custom behavior for interrupt tasks.
protected  boolean isAllowRestart()
          This method can be overridden to implement a custom behavior for restarting tasks.
protected  boolean isAllowStart()
          This method can be overridden to implement a custom behavior for starting tasks.
 boolean isEnabled()
           
protected  void onSubmit(AjaxRequestTarget target, Form<?> form)
           
protected  void onTaskCancel(AjaxRequestTarget ajaxRequestTarget)
          Override to trigger a custom action whenever a task was canceled and halted.
protected  void onTaskError(AjaxRequestTarget ajaxRequestTarget)
          Override to trigger a custom action whenever an error is occurred.
protected  void onTaskStart(AjaxRequestTarget ajaxRequestTarget)
          Override to trigger a custom action whenever a task is started.
protected  void onTaskSuccess(AjaxRequestTarget ajaxRequestTarget)
          Override to trigger a custom action whenever a task succeeded.
protected  void refresh(AjaxRequestTarget target)
          Overriding allows a custom refresh behavior.
 void registerCssClassModel(IModel<String> textModel, InteractionState... interactionStates)
          Adds a model for a css class which will be appended if any of the interactionStates apply, disregarding any possible task state.
 void registerCssClassModel(IModel<String> textModel, TaskState... taskStates)
          Adds a model for a css class which will be appended if any of the taskStates apply, disregarding any possible interaction state.
 void registerCssClassModel(IModel<String> textModel, TaskState taskState, InteractionState interactionState)
          Adds a model for a css class which will be appended only if taskState and interactionState apply.
 void registerMessageModel(IModel<String> textModel, InteractionState... interactionStates)
          Adds a text model for the button which will be appended if any of the interactionStates apply, disregarding any possible task state.
 void registerMessageModel(IModel<String> textModel, TaskState... taskStates)
          Adds a text model for the button which will be appended if any of the taskStates apply, disregarding any possible interaction state.
 void registerMessageModel(IModel<String> textModel, TaskState taskState, InteractionState interactionState)
          Adds a text model for the button which will be appended only if taskState and interactionState apply.
 void removeRefreshDependant(Component refreshDependant)
          Allows to remove a component which was rerendered every time the button was rerendered.
 void setTaskContainerModel(IModel<? extends AbstractTaskContainer> taskContainerModel)
           
 
Methods inherited from class org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton
getChannel, getForm, isButtonEnabled, onAfterSubmit, onAfterSubmit, onComponentTag, onError, onSubmit, updateAjaxAttributes
 
Methods inherited from class org.apache.wicket.markup.html.form.Button
getDefaultFormProcessing, getOnClickScript, initModel, onError, setDefaultFormProcessing, updateModel
 
Methods inherited from class org.apache.wicket.markup.html.form.FormComponent
add, add, checkRequired, clearInput, convertInput, convertValue, error, getConvertedInput, getDefaultLabel, getDefaultLabel, getInput, getInputAsArray, getInputName, getModel, getModelObject, getModelValue, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isInputNullable, isMultiPart, isRequired, isValid, newValidatable, newValidationError, onDetach, onDisabled, onInvalid, onRequired, onValid, processChildren, processInput, remove, reportRequiredError, setConvertedInput, setLabel, setModel, setModelObject, setModelValue, setRequired, setType, shouldTrimInput, trim, 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
getWebPage, getWebRequest, getWebResponse, getWebSession
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, contains, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, onAfterRenderChildren, onComponentTagBody, 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, clearOriginalDestination, 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, 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, internalPrepareForRender, internalRenderComponent, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onAfterRender, onBeforeRender, onConfigure, onEvent, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, 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, 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.markup.html.form.IFormSubmittingComponent
getInputName
 

Constructor Detail

ProgressButton

public ProgressButton(String id,
                      Form<?> form,
                      IModel<? extends AbstractTaskContainer> taskContainerModel,
                      Duration duration)

ProgressButton

public ProgressButton(String id,
                      IModel<String> model,
                      Form<?> form,
                      IModel<? extends AbstractTaskContainer> taskContainerModel,
                      Duration duration)

ProgressButton

public ProgressButton(String id,
                      Form<?> form,
                      IModel<? extends AbstractTaskContainer> taskContainerModel,
                      IRunnableFactory runnableFactory,
                      Duration duration)

ProgressButton

public ProgressButton(String id,
                      IModel<String> model,
                      Form<?> form,
                      IModel<? extends AbstractTaskContainer> taskContainerModel,
                      IRunnableFactory runnableFactory,
                      Duration duration)
Method Detail

getTaskContainerModel

public IModel<? extends AbstractTaskContainer> getTaskContainerModel()

setTaskContainerModel

public void setTaskContainerModel(IModel<? extends AbstractTaskContainer> taskContainerModel)

getTaskContainer

protected AbstractTaskContainer getTaskContainer()

isAllowStart

protected boolean isAllowStart()
This method can be overridden to implement a custom behavior for starting tasks.

Returns:
true if the button is allowed to start a task.

isAllowRestart

protected boolean isAllowRestart()
This method can be overridden to implement a custom behavior for restarting tasks.

Returns:
true if the button is allowed to restart a task.

isAllowInterrupt

protected boolean isAllowInterrupt()
This method can be overridden to implement a custom behavior for interrupt tasks.

Returns:
true if the button is allowed to interrupt a running task.

onSubmit

protected void onSubmit(AjaxRequestTarget target,
                        Form<?> form)
Overrides:
onSubmit in class AjaxFallbackButton

refresh

protected void refresh(AjaxRequestTarget target)
Overriding allows a custom refresh behavior. Should call super implementation.

Parameters:
target - The Ajax request target.

isEnabled

public boolean isEnabled()
Overrides:
isEnabled in class Component

registerMessageModel

public void registerMessageModel(IModel<String> textModel,
                                 TaskState taskState,
                                 InteractionState interactionState)
Adds a text model for the button which will be appended only if taskState and interactionState apply.

Parameters:
textModel - The model to be appended.
taskState - The relevant task state.
interactionState - The relevant interaction state.

registerMessageModel

public void registerMessageModel(IModel<String> textModel,
                                 TaskState... taskStates)
Adds a text model for the button which will be appended if any of the taskStates apply, disregarding any possible interaction state.

Parameters:
textModel - The model to be appended.
taskStates - All relevant task states.

registerMessageModel

public void registerMessageModel(IModel<String> textModel,
                                 InteractionState... interactionStates)
Adds a text model for the button which will be appended if any of the interactionStates apply, disregarding any possible task state.

Parameters:
textModel - The model to be appended.
interactionStates - All relevant interaction states.

registerCssClassModel

public void registerCssClassModel(IModel<String> textModel,
                                  TaskState taskState,
                                  InteractionState interactionState)
Adds a model for a css class which will be appended only if taskState and interactionState apply.

Parameters:
textModel - The model to be appended.
taskState - The relevant task state.
interactionState - The relevant interaction state.

registerCssClassModel

public void registerCssClassModel(IModel<String> textModel,
                                  TaskState... taskStates)
Adds a model for a css class which will be appended if any of the taskStates apply, disregarding any possible interaction state.

Parameters:
textModel - The model to be appended.
taskStates - All relevant task states.

registerCssClassModel

public void registerCssClassModel(IModel<String> textModel,
                                  InteractionState... interactionStates)
Adds a model for a css class which will be appended if any of the interactionStates apply, disregarding any possible task state.

Parameters:
textModel - The model to be appended.
interactionStates - All relevant interaction states.

addRefreshDependant

public void addRefreshDependant(Component refreshDependant)
Allows to add a component which is rerendered every time the button is rerendered.

Parameters:
refreshDependant - The dependant component.

removeRefreshDependant

public void removeRefreshDependant(Component refreshDependant)
Allows to remove a component which was rerendered every time the button was rerendered.

Parameters:
refreshDependant - The dependant component.

onTaskStart

protected void onTaskStart(AjaxRequestTarget ajaxRequestTarget)
Override to trigger a custom action whenever a task is started.

Parameters:
ajaxRequestTarget - The Ajax request target. Might be null.

onTaskSuccess

protected void onTaskSuccess(AjaxRequestTarget ajaxRequestTarget)
Override to trigger a custom action whenever a task succeeded.

Note: This trigger is only called if Javascript is enabled in the client's browser.

Parameters:
ajaxRequestTarget - The Ajax request target.

onTaskCancel

protected void onTaskCancel(AjaxRequestTarget ajaxRequestTarget)
Override to trigger a custom action whenever a task was canceled and halted. (A canceled task might continue to run since it is only told to interrupt. The trigger is called when the interrupted task stops running.)

Parameters:
ajaxRequestTarget - The Ajax request target. Might be null.

onTaskError

protected void onTaskError(AjaxRequestTarget ajaxRequestTarget)
Override to trigger a custom action whenever an error is occurred.

Note: This trigger is only called if Javascript is enabled in the client's browser.

Parameters:
ajaxRequestTarget - The Ajax request target.


Copyright © 2013–2014 Kantega AS. All rights reserved.