Component identification parameters

Name | Value
--- | ---
component-type | org.ajax4jsf.Status
component-family | javax.faces.Panel
component-class | org.ajax4jsf.component.html.HtmlAjaxStatus
renderer-type | org.ajax4jsf.components.AjaxStatusRenderer

## Creating on a page

There are two ways to define elements indicating a request status :

- With "StartText"/"StopText" atributes:

      <a4j:status startText="Progress" stopText="Done" for="stat1">

  In this case, text elements for the corresponding status are generated.

- With "Start"/"Stop" facets definition:

      <a4j:status for="stat2">
      	<f:facet name="start">
      		<h:graphicImage value="ajax_process.gif" />
      	</f:facet>
      	<f:facet name="stop">
      		<h:graphicImage value="ajax_stoped.gif" />
      	</f:facet>
      </a4j:status>

  In this case, the elements are generated for each status and correspond the facets content.

## Dynamical creation of a component from Java code

Example:

    import org.ajax4jsf.component.html.HtmlAjaxStatus;
    ...
    HtmlAjaxStatus  myStatus = new HtmlAjaxStatus();
    ...

## Key attributes and ways of usage

There are two ways for the components or containers definition, which Ajax requests status is tracked by a component.

- Definition with the "for" attribute on the <a4j:status> component. Here "for" attribute should point at an Ajax container (<a4j:region>) "id", which requests are tracked by a component.

- Definition with the "status" attribute obtained by any RichFaces library action component. The attribute should point at the <a4j:status> component "id". Then this <a4j:status> component shows the status for the request fired from this action component.

The component creates two <span> or <div> elements depending on attribute "layout" with content defined for each status, one of the elements (start) is initially hidden. At the beginning of an Ajax request, elements state is inversed, hence the second element is shown and the first is hidden. At the end of a response processing, elements display states return to its initial values.

Example:

    <a4j:status startText="Started" stopText="stopped" />

is decoded on a page as:

    <span id="j_id20:status.start" style="display: none">
          Started
    </span>
    <span id="j_id20:status.stop">
            Stopped
    </span>

And after the generation of an Ajax response is changed to:

    <span id="j_id20:status.start">
            Started
    </span>
    <span id="j_id20:status.stop" style="display: none">
            Stopped
    </span>

There is a possibility to group a <a4j:status> elements content into <div> elements, instead of <span>. To use it, just redefine the "layout" attribute from "inline"(default) to "block".

## Relevant resources links

Here you can see the example of <a4j:status> usage and sources for the given example.