ProgressBar

Table of Contents

Overview

Since 3.0

Progress bar is a progress indicator that can work on the client side by itself or gets its progress update from the server using ajax.

See the ICEfaces Showcase Live Demo of this component, complete with source code.

Getting Started

Client side only:

        <script type="text/javascript">
            function begin()
            {
                this.progressInterval = setInterval (
                function()
                {
                    clientSideBar.setValue(clientSideBar.getValue() + 10);
                }
                , 2000);
            }

            function stop()
            {
                clearInterval(this.progressInterval);
                clientSideBar.setValue(0);
            }
        </script>
        ...
        <ace:panel>
            <ace:progressBar widgetVar="clientSideBar" />
        </ace:panel>
        ...
        <h:commandButton onclick="begin();" ... />
        <h:commandButton onclick="stop();" ... />
Client polling server:

        <ace:progressBar widgetVar="#{upload.widgetVarName}" usePolling="true" pollingInterval="2000" value="#{upload.progressValue}" ... />
        ...
        <h:commandButton onclick="#{upload.widgetVarName}.start();" ... />

Attributes

TagLib Documentation
This section covers attributes involved in the typical use-cases for this component. For reference, the complete taglib documentation for this component is available here.

usePolling specifies the mode of progressBar, in polling mode progress value is retrieved periodically from a backing bean.

cancelListener, changeListener, completeListener are the listeners for the different stages of the progress. In the change event you can get the value and percentage of the progress bar.

pollingInterval is time between polls to the server in milliseconds.

Event Listeners

changeListener Listener to be invoked when the value of the progressbar changes.
completeListener Listener to be invoked when the value of the progressbar reaches the maximum value.
cancelListener Listener to be invoked when the progress process is cancelled by calling cancel().

Client Behavior Events

complete Fired when the value of the progressbar reaches the maximum value (default event).
cancel Fired when the progress process is cancelled by calling cancel().
change Fired when the value of the progressbar changes.

JavaScript API

ICEfaces 3.x

The client side progress bar object is exposed through the global variable name specified in the widgetVar attribute. You can use the getValue() and setValue() methods to read and change the value. Use the start() and cancel() methods for starting/cancelling the progress:

            <ace:progressBar widgetVar="sampleProgeessBar" value="#{bean.value}" />
            <h:commandButton value="Start" onclick="sampleProgeessBar.start();" ... />
            <h:commandButton value="Cancel" onclick="sampleProgeessBar.cancel();" ... />

ICEfaces 4+

The "widgetVar" attribute on the ACE components has been removed in ICEfaces 4 and in its place a new "ice.ace.instance()" client JavaScript object lookup API has been introduced. The reason for this change is to enable lazy-initialization of the ACE component JavaScript objects to improve runtime performance and reduce browser memory use. You can use the getValue(), setValue(), start() and cancel() methods as described above.

widget = ice.ace.instance('frm:myProgressBar');

To illustrate this change, see the before and after code example below.

Before (ICEfaces 3 API)
            <ace:progressBar widgetVar="sampleProgeessBar" value="#{bean.value}" />
            <h:commandButton value="Start" onclick="sampleProgeessBar.start();" ... />
            <h:commandButton value="Cancel" onclick="sampleProgeessBar.cancel();" ... />
After (ICEfaces 4 API)
    
            <ace:progressBar id="myProgressBar" value="#{bean.value}" />
            <h:commandButton value="Start" onclick="ice.ace.instance('frm:myProgressBar').start();" ... />
            <h:commandButton value="Cancel" onclick="ice.ace.instance('frm:myProgressBar').cancel();" ... />
The ice.ace.instance function requires the full client id of the component to be specified, such as "j_idt77:componentId" instead of just "componentId". To reduce the complexity of working with complete IDs with this function it may be preferable in some cases to use prependId="false" in the enclosing form (e.g. <h:form prependId="false">).

Keyboard and ARIA Support

The following ARIA roles are supported: progressbar.

CSS Classes

The following markup represents the basic HTML structure of the component and the CSS classes it uses.

<div class="[user defined classes] ui-progressbar ui-widget ui-widget-content ui-corner-all" style="[user defined styles]">
	<div class="ui-progressbar-value ui-widget-header ui-corner-left"></div>
</div>

Known Issues

None.

Additional Resources

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

© Copyright 2018 ICEsoft Technologies Canada Corp.