<?php
/**
 * Componente para las carpetas.
 **/
class CarpetaBtMalaga extends CarpetaEditable {
   
    public $AccionVer;
    public $AccionEditar;
    public $AccionBorrar;

    /**
     * Devuelve el nombre del componente 
     **/
    public function getNombreComponente() {
        return 'carpeta';
    }
	
    /**
     * Asigna las acciones al control. Esto no funciona en el constructor y por 
     * tanto se pone en una función aparte que se llama al cargar los contenidos
     * en el DataGrid.
     **/
    public function cargarAcciones() {
        $this->AccionVer = 'btmalaga/images/show.png^Ver^javascript:verComponente('.$this->ID.')^_self'; 
	if ($this->puedeEscribir()) {
	    $this->AccionEditar = 'btmalaga/images/edit.gif^Editar^javascript:editarComponente('.$this->ID.')^_self';
	    $this->AccionBorrar = 'btmalaga/images/delete.gif^Borrar^javascript:borrarComponente('.$this->ID.')^_self';
	} else {
	    $this->AccionEditar = 'btmalaga/images/editdisabled.gif^Editar';		
	    $this->AccionBorrar = 'btmalaga/images/deletedisabled.gif^Borrar';
	}	      
    } 
      
    /**
     * Función que indica los campos para poner en el grid de listado.
     * El formato a utilizar es JSON.	  
     **/
    public function getCamposGrid() {
        $resultado = '{"Campos":[';
	$resultado .= $this->camposGrid();
	$resultado .= ']}';
	return $resultado;
    }
	
    /**
     * Clase que devuelve los campos del grid.
     * Nota: debe ser sobreescrito por cada componentes.
     **/
    protected function camposGrid() {
        $resultado = '{"Nombre": "", "Columna":"Seleccionado", "Ordenacion":"na", "Tipo":"ch", "Tamano":20, "Filtro":"&nbsp;", "Alineacion":"left"},';
	$resultado .= '{"Nombre": "", "Columna":"AccionVer", "Ordenacion":"na", "Tipo":"img", "Tamano":20, "Filtro":"&nbsp;", "Alineacion":"left"},';
	//$resultado .= '{"Nombre": "", "Columna":"AccionEditar", "Ordenacion":"na", "Tipo":"img", "Tamano":20, "Filtro":"&nbsp;", "Alineacion":"left"},';
	//$resultado .= '{"Nombre": "", "Columna":"AccionBorrar", "Ordenacion":"na", "Tipo":"img", "Tamano":20, "Filtro":"&nbsp;", "Alineacion":"left"},';
        $resultado .= '{"Nombre": "Nombre", "Columna":"Nombre", "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 de la carpeta
	$campoNombre = new CampoEditable();
	$campoNombre->setNombre('Nombre');
	$campoNombre->setField(new TextField('Nombre', 'Nombre', $this->Nombre));
	$pestanasEditable->add("Contenido", $campoNombre);

        return $pestanasEditable;
    }	
    
    /**
     * Devuelve el código par ver el componente.
     **/	
    public function getCodigoVer() {
        return $this->renderWith('PlantillaVerCarpeta');
    }    
    
    /**
     * Indica si un usuario puede editar para un
     * determinado tipo.
     */
    public function puedeEditarEnListado() {
    	$carpetaPadre = DataObject::get_one('CarpetaBtMalaga', "Nombre='Contenedor".$this->ClassName."'");
    	if ($carpetaPadre) {
    	    return $carpetaPadre->puedeEscribir();
    	} else {
    	    return false;
    	}
    }
    
    /**
     * Devuelve los parámetros para el listado de componentes.
     **/
    public function parametrosListado() {
      return '';
    } 

   	/**
	 * Clase que devuelve los botones para el toolbar.
	 * Nota: debe ser sobreescrito por cada componente.
	 **/
	public function botonesToolbar() {
	  $this->cargarAcciones();
	  $xml = '<item id="back" type="button" text="Atras" img="btmalaga/images/back-icon.png" imgdis="btmalaga/images/back-icondisabled.png" enabled="false"></item>';
        $xml .= '<item id="forward" type="button" text="Adelante" img="btmalaga/images/next-icon.png" imgdis="btmalaga/images/next-icondisabled.png" enabled="false"></item>';

		
		//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;
    }  
   
    
 }

?>
