java.lang.Object
org.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.panel.Panel
com.evolveum.midpoint.gui.impl.page.admin.resource.component.wizard.schemaHandling.objectType.smart.component.TimerProgressPanel
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.IMetadataContext<Serializable,org.apache.wicket.Component>, org.apache.wicket.IQueueRegion, 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 TimerProgressPanel extends org.apache.wicket.markup.html.panel.Panel
Panel that displays elapsed time based on provided start and optional end timestamps.

If the end timestamp is not provided, the panel shows continuously increasing elapsed time (optionally auto-refreshed via Ajax). If the end timestamp is present, it displays the final elapsed time along with the last refresh timestamp.

Typical output examples:

  • Running: "Elapsed time: 1m 20s"
  • Finished: "Last refresh: Mar 25, 2026, 10:45:00 AM • Elapsed time: 1m 43s"

The component supports optional auto-refresh to update the elapsed time dynamically.

See Also:
  • Field Summary

    Fields inherited from class org.apache.wicket.markup.html.panel.Panel

    PANEL

    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

    Constructors
    Constructor
    Description
    TimerProgressPanel(String id, org.apache.wicket.model.IModel<XMLGregorianCalendar> startModel)
     
    TimerProgressPanel(String id, org.apache.wicket.model.IModel<XMLGregorianCalendar> startModel, boolean autoRefreshEnabled)
     
    TimerProgressPanel(String id, org.apache.wicket.model.IModel<XMLGregorianCalendar> startModel, @Nullable org.apache.wicket.model.IModel<XMLGregorianCalendar> endModel)
     
    TimerProgressPanel(String id, org.apache.wicket.model.IModel<XMLGregorianCalendar> startModel, @Nullable org.apache.wicket.model.IModel<XMLGregorianCalendar> endModel, boolean autoRefreshEnabled)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected static @NotNull String
    formatDuration(@NotNull Duration duration)
     
    static @Nullable String
     
    protected void
     
    protected void
     

    Methods inherited from class org.apache.wicket.markup.html.panel.Panel

    getRegionMarkup, newMarkupSourcingStrategy

    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, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, 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, internalOnModelChanged, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onBeforeRender, onComponentTag, onConfigure, onEvent, 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, 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.IQueueRegion

    dequeue, newDequeueContext

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator
  • Constructor Details

    • TimerProgressPanel

      public TimerProgressPanel(String id, org.apache.wicket.model.IModel<XMLGregorianCalendar> startModel)
    • TimerProgressPanel

      public TimerProgressPanel(String id, org.apache.wicket.model.IModel<XMLGregorianCalendar> startModel, boolean autoRefreshEnabled)
    • TimerProgressPanel

      public TimerProgressPanel(String id, org.apache.wicket.model.IModel<XMLGregorianCalendar> startModel, @Nullable @Nullable org.apache.wicket.model.IModel<XMLGregorianCalendar> endModel)
    • TimerProgressPanel

      public TimerProgressPanel(String id, org.apache.wicket.model.IModel<XMLGregorianCalendar> startModel, @Nullable @Nullable org.apache.wicket.model.IModel<XMLGregorianCalendar> endModel, boolean autoRefreshEnabled)
  • Method Details

    • onInitialize

      protected void onInitialize()
      Overrides:
      onInitialize in class org.apache.wicket.MarkupContainer
    • formatTimestamp

      @Nullable public static @Nullable String formatTimestamp(@Nullable @Nullable XMLGregorianCalendar timestamp)
    • formatDuration

      @NotNull protected static @NotNull String formatDuration(@NotNull @NotNull Duration duration)
    • onDetach

      protected void onDetach()
      Overrides:
      onDetach in class org.apache.wicket.MarkupContainer