Package com.cosmo.ui.widgets

Source Code of com.cosmo.ui.widgets.BannerAreaWidget

package com.cosmo.ui.widgets;

import com.cosmo.Workspace;
import com.cosmo.ui.templates.Template;
import com.cosmo.ui.templates.TemplateControl;
import com.cosmo.ui.templates.TemplateUnavailableException;
import java.util.ArrayList;

/**
* Representa una �rea contenedora de banner.
*
* @author Gerard Llort
*/
public class BannerAreaWidget extends Widget
{
   /** Identificador �nico del tipo de widget */
   private static final String WIDGET_ID = "CosmoUiWdgtBannerArea";

   private static final String WPART_HEADER = "banners-header";
   private static final String WPART_BANNER = "banner-item";
   private static final String WPART_FOOTER = "banners-footer";
  
   private static final String TAG_BANNER_ID = "BANNER-ID";
   private static final String TAG_BANNER_OBJ = "BANNER-OBJECT";

   /**
    * Defina las distintas areas de banners en un layout
    */
   public enum BannerAreas
   {
      Left,
      Right,
      CenterTop,
      CenterBottom
   }

   // Declaraci�n de variables internas
   private BannerAreas area;


   //==============================================
   // Constructor
   //==============================================

   /**
    * Constructor de la clase {@link BannerAreaWidget}.
    *
    * @param workspace Una instancia de {@link Workspace} que representa el workspace actual.
    * @param area Zona d�nde debe ir situado el banner.
    */
   public BannerAreaWidget(Workspace workspace, BannerAreas area)
   {
      super(workspace);

      this.area = area;
   }


   //==============================================
   // properties
   //==============================================

   /**
    * Devuelve un identificador �nico del tipo de widget.
    */
   @Override
   public String getWidgetTypeId()
   {
      return BannerAreaWidget.WIDGET_ID;
   }

   /**
    * Devuelve la zona de la p�gina d�nde va situado el widget.
    */
   public BannerAreas getArea()
   {
      return area;
   }

   /**
    * Establece la zona de la p�gina d�nde va situado el widget.
    */
   public void setArea(BannerAreas area)
   {
      this.area = area;
   }  


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

   /**
    * Renderiza el widget y genera el c�digo XHTML de representaci�n.
    *
    * @return Devuelve una cadena en formato XHTML que representa el widget.
    */
   @Override
   public String render() throws TemplateUnavailableException
   {
      String xhtml = "";
      String xitem;
      TemplateControl ctrl;
      Template template;
      ArrayList<BannerAreaItem> items = new ArrayList<BannerAreaItem>();

      if (!items.isEmpty())
      {
         // Obtiene la plantilla y la parte del widget
         template = this.getWorkspace().getTemplate();
         ctrl = template.getControl(WIDGET_ID);

         // Renderiza el control
         xhtml = "";
         xhtml += ctrl.getElement(WPART_HEADER);
         for (BannerAreaItem item : items)
         {
            xitem = ctrl.getElement(WPART_BANNER);
            xitem = xitem.replace(Widget.getTag(TAG_BANNER_ID), item.getId());
            xitem = xitem.replace(Widget.getTag(TAG_BANNER_OBJ), item.render());
            xhtml += xitem;
         }
         xhtml += ctrl.getElement(WPART_FOOTER);
      }

      return xhtml;
   }
}
TOP

Related Classes of com.cosmo.ui.widgets.BannerAreaWidget

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.