Package com.cosmo.ui.controls

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

package com.cosmo.ui.controls;

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

/**
* Implementa un control de contenido que representa la cabecera (t�tulo) de una p�gina.
*
* @author Gerard Llort
*/
public class HeaderControl extends Control
{
   /** Control Type Unique ID */
   private static final String CTUID = "CosmoUiCtrlHeader";

   // Declaraci�n de variables internas
   private String title;
   private String description;
   private String author;


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

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

   /**
    * Contructor de la clase {@link HeaderControl}.
    *
    * @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 HeaderControl(Workspace workspace, String id)
   {
      super(workspace, id);
      initialize();
   }


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

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

   /**
    * Devuelve el t�tulo de la cabecera.
    */
   public String getTitle()
   {
      return title;
   }

   /**
    * Establece el t�tulo de la cabecera.
    */
   public void setTitle(String title)
   {
      this.title = title;
   }

   /**
    * Devuelve el texto descriptivo de la cabecera.
    */
   public String getDescription()
   {
      return description;
   }

   /**
    * Establece el texto descriptivo de la cabecera.
    */
   public void setDescription(String description)
   {
      this.description = description;
   }

   /**
    * Obtiene el autor del documento.
    */
   public String getAuthor()
   {
      return author;
   }

   /**
    * Establece el autor del documento.
    */
   public void setAuthor(String author)
   {
      this.author = author;
   }


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

   private static final String CPART_TITLE = "page-title";
   private static final String CPART_UTILITIES = "page-utilities";

   private static final String TAG_TITLE = "TITLE";
   private static final String TAG_UTILITIES = "UTILITIES";
   private static final String TAG_DESCRIPTION = "DESCRIPTION";
   private static final String TAG_AUTHOR = "AUTHOR";

   /**
    * 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()
   {
      String xhtml;
      String xitem;
      TemplateControl ctrl;

      // Obtiene la plantilla y la parte del control
      ctrl = getWorkspace().getTemplate().getControl(HeaderControl.CTUID);

      // Genera la cabecera del formulario
      xhtml = "";
      xitem = ctrl.getElement(CPART_TITLE);
      xitem = Control.replaceTag(xitem, TAG_TITLE, this.getTitle());
      xitem = Control.replaceTag(xitem, TAG_AUTHOR, this.author);
      xitem = Control.replaceTag(xitem, TAG_DESCRIPTION, this.getDescription());
      xitem = Control.replaceTag(xitem, TAG_UTILITIES, ctrl.getElement(CPART_UTILITIES));
      xhtml += xitem;

      return xhtml;
   }

   @Override
   public String toString()
   {
      StringBuilder str = new StringBuilder();

      str.append("<div id=\"").append(this.getId()).append("\">").append("\n");
      str.append("  <h1>").append(this.title).append("</h1>").append("\n");
      if (!this.title.equals(""))
      {
         str.append("  <p>").append(this.description).append("</p>").append("\n");
      }
      str.append("</div>").append("\n");

      return str.toString();
   }


   //==============================================
   // Private Members
   //==============================================

   /**
    * Inicializa la instancia.
    */
   private void initialize()
   {
      this.title = StringUtils.EMPTY;
      this.description = StringUtils.EMPTY;
      this.author = StringUtils.EMPTY;
   }
}
TOP

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

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.