Class Stopwatch

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.sys.ComponentCtrl

    public class Stopwatch
    extends org.zkoss.zul.Label
    A component which displays an elapsed time. The time is updated every second on a client side.
    By default time is displayed in following way: hh:mm:ss. But it can be modified by settings: It gives us following format: d(d lt 0 and displayDays==true){daysDelimiter}hh(h lt 0 or d lt 0||displayEmptyHours==true){timeDelimiter}mm{timeDelimiter}ss

    If getStartTime() and getStopTime() are set and stopwatch is not started then it displays difference between these two points in time.

    This component should be used display time in the UI.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent

        org.zkoss.zk.ui.HtmlBasedComponent.ExtraCtrl
      • Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

        org.zkoss.zk.ui.AbstractComponent.Children
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String DAYS_DELIMITER  
      static java.lang.String DISPLAY_DAYS  
      static java.lang.String DISPLAY_EMPTY_HOURS  
      static java.lang.String LABEL_RESET  
      static java.lang.String LABEL_RUNNING  
      static java.lang.String START_TIME  
      static java.lang.String STOP_TIME  
      static java.lang.String TIME_DELIMITER  
      static int TIME_NOT_SET  
      • Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent

        _zclass
      • Fields inherited from interface org.zkoss.zk.ui.Component

        APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
      • Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl

        AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
    • Constructor Summary

      Constructors 
      Constructor Description
      Stopwatch()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected long getCurrentTime()  
      java.util.function.Supplier<java.lang.Long> getCurrentTimeSupplier()  
      java.lang.String getDaysDelimiter()  
      long getStartTime()  
      long getStopTime()  
      java.lang.String getTimeDelimiter()  
      boolean isDisplayDays()  
      boolean isDisplayEmptyHours()  
      boolean isRunning()
      Tells if stopwatch is running.
      protected void renderProperties​(org.zkoss.zk.ui.sys.ContentRenderer renderer)  
      void reset()
      Stops timer and resets start and stop time
      void setCurrentTimeSupplier​(java.util.function.Supplier<java.lang.Long> timeSupplier)
      Sets current time supplier which will be used to obtain current time in milliseconds.
      void setDaysDelimiter​(java.lang.String daysDelimiter)
      Defines delimiter between number of days and hours (default:'d' defined in global label stopwatch.delimiter.days)
      void setDisplayDays​(boolean displayDays)
      Defines if hours should be rounded to 23 and days displayed (default:false)
      void setDisplayEmptyHours​(boolean displayEmptyHours)
      Defines if empty hours should be displayed (default:false).
      void setStartTime​(long startTime)  
      void setStopTime​(long stopTime)  
      void setTimeDelimiter​(java.lang.String timeDelimiter)
      Defines delimiter between hours, minutes and seconds (default:':' defined in global label stopwatch.delimiter.time)
      void start()
      Starts stopwatch - if getStartTime() is set then it will count elapsed time from that moment.
      void stop()
      Stops timer (counting elapsed time in the UI) and sets current time as stop time.
      • Methods inherited from class org.zkoss.zul.Label

        clone, getMaxlength, getPropertyAccess, getValue, getZclass, isChildable, isHyphen, isMultiline, isPre, setHyphen, setMaxlength, setMultiline, setPre, setValue
      • Methods inherited from class org.zkoss.zul.impl.XulElement

        getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes
      • Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent

        addSclass, focus, getAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, removeSclass, removeSclass, service, setAction, setClass, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly
      • Methods inherited from class org.zkoss.zk.ui.AbstractComponent

        addAnnotation, addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, beforeParentChanged, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, enableBindingAnnotation, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttribute, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, insertBefore, invalidate, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetAttribute, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Stopwatch

        public Stopwatch()
    • Method Detail

      • getStopTime

        public long getStopTime()
      • start

        public void start()
        Starts stopwatch - if getStartTime() is set then it will count elapsed time from that moment. If getStopTime() was set then it will be removed.
      • stop

        public void stop()
        Stops timer (counting elapsed time in the UI) and sets current time as stop time.
      • reset

        public void reset()
        Stops timer and resets start and stop time
      • isRunning

        public boolean isRunning()
        Tells if stopwatch is running.
        Returns:
        true is stopwatch is running.
      • getStartTime

        public long getStartTime()
      • setStartTime

        public void setStartTime​(long startTime)
      • setStopTime

        public void setStopTime​(long stopTime)
      • isDisplayDays

        public boolean isDisplayDays()
      • setDisplayDays

        public void setDisplayDays​(boolean displayDays)
        Defines if hours should be rounded to 23 and days displayed (default:false)
        Parameters:
        displayDays - - true if days should be displayed.
      • getTimeDelimiter

        public java.lang.String getTimeDelimiter()
      • setTimeDelimiter

        public void setTimeDelimiter​(java.lang.String timeDelimiter)
        Defines delimiter between hours, minutes and seconds (default:':' defined in global label stopwatch.delimiter.time)
        Parameters:
        timeDelimiter - - timeDelimiter.
      • getDaysDelimiter

        public java.lang.String getDaysDelimiter()
      • setDaysDelimiter

        public void setDaysDelimiter​(java.lang.String daysDelimiter)
        Defines delimiter between number of days and hours (default:'d' defined in global label stopwatch.delimiter.days)
        Parameters:
        daysDelimiter - - days delimiter.
      • isDisplayEmptyHours

        public boolean isDisplayEmptyHours()
      • setDisplayEmptyHours

        public void setDisplayEmptyHours​(boolean displayEmptyHours)
        Defines if empty hours should be displayed (default:false).
        Parameters:
        displayEmptyHours - if true then 00:45:26 or 45:26 when false.
      • getCurrentTime

        protected long getCurrentTime()
      • setCurrentTimeSupplier

        public void setCurrentTimeSupplier​(java.util.function.Supplier<java.lang.Long> timeSupplier)
        Sets current time supplier which will be used to obtain current time in milliseconds.
        Parameters:
        timeSupplier - the supplier
      • getCurrentTimeSupplier

        public java.util.function.Supplier<java.lang.Long> getCurrentTimeSupplier()
      • renderProperties

        protected void renderProperties​(org.zkoss.zk.ui.sys.ContentRenderer renderer)
                                 throws java.io.IOException
        Overrides:
        renderProperties in class org.zkoss.zul.Label
        Throws:
        java.io.IOException