Package com.cosmo.ui.controls

Source Code of com.cosmo.ui.controls.ListViewControl

package com.cosmo.ui.controls;

import java.util.ArrayList;

import com.cosmo.Workspace;
import com.cosmo.ui.templates.TemplateControl;
import com.cosmo.util.StringUtils;

/**
* Implementa una lista de objetos.
*
* @author Gerard Llort
*/
public class ListViewControl extends Control
{
   /** Control Type Unique ID */
   private static final String CTUID = "CosmoUiCtrlObjectLst";

   private static final String CPART_TITLE = "object-list-title";
   private static final String CPART_HEADER = "object-list-header";
   private static final String CPART_FOOTER = "object-list-footer";

   private static final String TAG_TITLE = "TITLE";
   private static final String TAG_DESCRIPTION = "DESCRIPTION";
   private static final String TAG_ITEMS = "ITEMS";

   // Declaraci�n de variables internas
   private String caption;
   private String description;
   private ArrayList<ListViewItem> items;


   //==============================================
   // Contructors
   //==============================================

   /**
    * Contructor de la clase {@link ListViewControl}.
    *
    * @param workspace Una instancia de {@link Workspace} que representa el espacio de aplicaci�n actual.
    */
   public ListViewControl(Workspace workspace)
   {
      super(workspace);
      initialize();
   }

   /**
    * Contructor de la clase {@link ListViewControl}.
    *
    * @param workspace Una instancia de {@link Workspace} que representa el espacio de aplicaci�n actual.
    * @param id Identificador �nico del control en la p�gina.
    */
   public ListViewControl(Workspace workspace, String id)
   {
      super(workspace, id);
      initialize();
   }


   //==============================================
   // Properties
   //==============================================

   /**
    * Devuelve un identificador �nico del tipo de control.
    */
   @Override
   public String getControlTypeId()
   {
      return ListViewControl.CTUID;
   }


   //==============================================
   // Methods
   //==============================================

   /**
    * Agrega
    *
    * @param item Una instancia de {@link ListViewItem} que representa el elemento de la lista.
    */
   public void addListItem(ListViewItem item)
   {
      items.add(item);
   }

   /**
    * Renderiza el control y genera el c�digo XHTML de representaci�n.
    *
    * @return Devuelve una cadena en formato XHTML que representa el control.
    */
   @Override
   public String render()
   {
      int nitems = 0;
      String xitem;
      TemplateControl ctrl = getWorkspace().getTemplate().getControl(ListViewControl.CTUID);
      StringBuilder sb = new StringBuilder();

      xitem = ctrl.getElement(CPART_TITLE);
      xitem = Control.replaceTag(xitem, TAG_TITLE, this.caption);
      xitem = Control.replaceTag(xitem, TAG_DESCRIPTION, this.description);
      sb.append(xitem);

      sb.append(ctrl.getElement(CPART_HEADER));
     
      for (ListViewItem item : this.items)
      {
         sb.append(item.render(ctrl));
         nitems++;
      }

      xitem = ctrl.getElement(CPART_FOOTER);
      xitem = Control.replaceTag(xitem, TAG_ITEMS, StringUtils.EMPTY + nitems);
      sb.append(xitem);

      return sb.toString();
   }


   //==============================================
   // Private members
   //==============================================

   /**
    * Inicializa la instancia.
    */
   private void initialize()
   {
      this.caption = StringUtils.EMPTY;
      this.description = StringUtils.EMPTY;
      this.items = new ArrayList<ListViewItem>();
   }  
}
TOP

Related Classes of com.cosmo.ui.controls.ListViewControl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.