Adición del componente de lista a una aplicación JSF

Utilice el componente de lista del Explorador de Business Process Choreographer para visualizar una lista de objetos de modelo de cliente, por ejemplo, instancias de proceso de empresa o instancias de tarea.

  1. Añada el componente de lista al archivo JSP (JavaServer Pages).

    Añada el código bpe:list al código h:form. El código bpe:list debe incluir un atributo model. Añada los códigos bpe:column al código bpe:list para añadir las propiedades de los objetos que han de aparecer en cada una de las filas de la lista.

    El siguiente ejemplo muestra cómo añadir un componente de lista para visualizar instancias de tarea.

    <h:form>
    
       <bpe:list model="#{TaskPool}">
          <bpe:column name="name" action="taskInstanceDetails" />
          <bpe:column name="state" />
          <bpe:column name="kind" />
          <bpe:column name="owner" />
          <bpe:column name="originator" />
       </bpe:list>
    
    </h:form>

    El atributo model hace referencia a un bean gestionado, TaskPool. El bean gestionado proporciona la lista de objetos Java que la lista reitera y luego visualiza en filas individuales.

  2. Configure el bean gestionado al que se hace referencia en el código bpe:list.

    Para el componente de lista, este bean gestionado debe ser una instancia de la clase com.ibm.bpe.jsf.handler.BPCListHandler.

    El siguiente ejemplo muestra cómo añadir el bean gestionado TaskPool al archivo de configuración.

    <managed-bean>
    <managed-bean-name>TaskPool</managed-bean-name>
    <managed-bean-class>com.ibm.bpe.jsf.handler.BPCListHandler</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    
       <managed-property>
          <property-name>query</property-name>
          <value>#{TaskPoolQuery}</value>
       </managed-property>
    
       <managed-property>
          <property-name>type</property-name>
          <value>com.ibm.task.clientmodel.bean.TaskInstanceBean</value>
       </managed-property>
    
    </managed-bean>
    <managed-bean>
    <managed-bean-name>htmConnection</managed-bean-name>
    <managed-bean-class>com.ibm.task.clientmodel.HTMConnection</managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
    
       <managed-property>
          <property-name>jndiName</property-name>
          <value>java:comp/env/ejb/LocalHumanTaskManagerEJB</value>
       </managed-property>

    En el ejemplo se muestra que TaskPool tiene dos propiedades configurables: query y type. El valor de la propiedad query hace referencia a otro bean gestionado, TaskPoolQuery. El valor de la propiedad type especifica la clase de bean, cuyas propiedades se muestran en las columnas de la lista visualizada. La instancia de consulta asociada también puede tener un tipo de propiedad. Si se especifica un tipo de propiedad, debe ser el mismo que el tipo especificado para el manejador de listas.

    Para proporcionar una conexión con Human Task Manager, se implementa el bean gestionado TaskPool utilizando el bean gestionado htmConnection.

  3. Añada el código personalizado del bean gestionado al que hace referencia el manejador de listas.

    El siguiente ejemplo muestra cómo añadir código personalizado al bean gestionado TaskPool.

    public class MyTaskQuery implements Query {
    
      public List execute throws ClientException {
    
        // Examinar el archivo faces-config para un bean gestionado “htmConnection”.
        //
        FacesContext ctx = FacesContext.getCurrentInstance();
        Application  app = ctx.getApplication();
        ValueBinding htmVb = app.createValueBinding("#{htmConnection}");
        htmConnection = (HTMConnection) htmVb.getValue(ctx);  
        HumanTaskManagerService taskService = 
             htmConnection.getHumanTaskManagerService();
    
        // A continuación, llamar al método de consulta actual en el servicio de
        // Gestor de tareas humanas.
        //
        QueryResultSet queryResult = taskService.query(
        	“DISTINCT TASK.TKIID, TASK.NAME, TASK.KIND, TASK.STATE, TASK.TYPE,”
          + “TASK.STARTED, TASK.ACTIVATED, TASK.DUE, TASK.EXPIRES, TASK.PRIORITY” ,
          “TASK.KIND IN(101,102,105) AND TASK.STATE IN(2) 
            AND WORK_ITEM.REASON IN (1)”,
          null, 
          null, 
          null);    List applicationObjects = transformToTaskList ( queryResult );
        return applicationObjects ;
      }
    
    
      private List transformToTaskList(QueryResultSet result) {
    
    ArrayList array = null;
    int entries = result.size();
    array = new ArrayList( entries );
    
    // Transforma cada fila de QueryResultSet en beans de instancia de tarea.
    	for (int i = 0; i < entries; i++) {
    	  result.next();
    	  array.add( new TaskInstanceBean( result, connection ));
    	}
    	return array ;
      }
    }
    

    El bean TaskPoolQuery consulta las propiedades de los objetos Java. Este bean debe implementar la interfaz com.ibm.bpc.clientcore.Query. Cuando el manejador de listas renueva su contenido, llama al método execute de la consulta. La llamada devuelve una lista de objetos Java. El método getType debe devolver el nombre de clase de los objetos Java devueltos.

La aplicación JSF contiene ahora una página JavaServer que muestra las propiedades de la lista de objetos solicitada, por ejemplo, el estado, clase, propietario y originador de las instancias de tarea que están disponibles para el usuario.

Condiciones de uso |

Última actualización: Wed Apr 19 21:34:07 2006

(c) Copyright IBM Corporation 2005, 2006.
Este centro de información está basado en tecnología Eclipse (http://www.eclipse.org)