<?php
/**
 * Componente para los grupos de usuario
 **/
   class ComponenteGrupoBtMalaga extends ComponenteBtMalaga {
   
	static $has_one = array(
	                                             'GrupoComponente' => 'GrupoBtMalaga'
	                                            );

	public $Nombre;
	public $Descripcion;
	
	function __construct($record = null, $isSingleton = false) {
		parent::__construct($record, $isSingleton);
		$grupo = $this->GrupoComponente();
		$this->Nombre = $grupo->Nombre;
		$this->Descripcion = $grupo->Descripcion;
	}	              

    /**
     * Devuelve el nombre del componente 
     **/
    public function getNombreComponente() {
        return 'grupo';
    }

                              
	                                            
	/**
	 * Función que indica los campos para poner en el grid de listado.
	 **/
	protected function camposGrid() {
		$resultado = parent::camposGrid();
		$resultado .= '{"Nombre": "Nombre", "Columna":"Nombre", "Ordenacion":"str", "Tipo":"ro", "Tamano":200, "Filtro":"#text_filter", "Alineacion":"left"},';
		$resultado .= '{"Nombre": "Descripci&oacute;n", "Columna":"Descripcion", "Ordenacion":"str", "Tipo":"ro", "Tamano":"*", "Filtro":"#text_filter", "Alineacion":"left"}';
		return $resultado;
	}
	
    /**
     * Función que devuelve los campos para editar
     * el contenido en modo principal.
     **/
    protected function cargarEdicionPrincipal() {
        $pestanasEditable = parent::cargarEdicionPrincipal();       

	//Nombre del grupo
	$campoNombre = new CampoEditable();
	$campoNombre->setNombre('Nombre');
	$campoNombre->setField(new TextField('Nombre', 'Nombre', $this->Nombre));
	$campoNombre->setValidador(new CampoRequeridoValidador());
	$pestanasEditable->add("Contenido", $campoNombre);

	//Descripción del grupo
	$campoDescripcion = new CampoEditable();
	$campoDescripcion->setNombre('Descripcion');
	$campoDescripcion->setField(new TextField('Descripcion', 'Descripcion', $this->Descripcion));
	$campoDescripcion->setValidador(new CampoRequeridoValidador());
	$pestanasEditable->add("Contenido", $campoDescripcion);

        return $pestanasEditable;
    }	
    
    /**
     * Sobreescribe el método guardar para escribir en el grupo.
     **/
   public function guardar($datos = null) {
     $grupo =$this->GrupoComponente();
     $grupo->Nombre = $this->Nombre;
     $grupo->Descripcion = $this->Descripcion;
     $grupo->write();
     
     $this->GrupoComponenteID = $grupo->ID;
     parent::guardar($datos);
   } 
      
   /**
    * Sobreescribe el método que borra.
    **/
   public function borrar() {
     $grupo = $this->GrupoComponente();
     $grupo->delete();

     parent::delete();
   }
   
    /**
     * Devuelve el c�digo par ver el componente.
     **/	
    protected function CodigoVer() {
      return $this->renderWith('PlantillaVerGrupo');
    }
    
    /**
	 * Clase que devuelve los botones para el toolbar.
	 * Nota: debe ser sobreescrito por cada componente.
	 **/
	public function botonesToolbar() {
		$this->cargarAcciones();
		$xml = parent::botonesToolbar();
		
		//botón para editar
        $xml .= '<item id="editar#'.$this->ID.'" type="button" text="Editar" img="btmalaga/images/edit.gif" imgdis="btmalaga/images/editdisabled.gif"';
        if (strpos($this->AccionEditar,'javascript') === false) {
        	$xml .= ' enabled="false"';
     	}        
        $xml .= '></item>';		
        
   		//botón para borrar
        $xml .= '<item id="borrar#'.$this->ID.'" type="button" text="Borrar" img="btmalaga/images/delete.gif" imgdis="btmalaga/images/deletedisabled.gif"';
        if (strpos($this->AccionBorrar,'javascript') === false) {
        	$xml .= ' enabled="false"';
     	}        
        $xml .= '></item>';        

        
        return $xml;
    }  

    /**
     * sobreescribe la función para borrar
     */
    public function cargarAcciones() {
      	parent::cargarAcciones();
      	
      	//compruesa si existe algún servicio con el sistema actual
      	if (strpos($this->AccionBorrar, 'javascript') !== false) {
      	  $grupos = DataObject::get('GruposUsuarioPicasso','GrupoID='.$this->GrupoComponenteID);
      	  if (($grupos) && ($grupos->Count() > 0)) {
      		$this->AccionBorrar = 'btmalaga/images/deletedisabled.gif^Borrar';
      	  }	      		
      	}
    }    

   }

?>