<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1                                                                                      |
// +------------------------------------------------------------------------------------------------------+
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
// +------------------------------------------------------------------------------------------------------+
// | This library is free software; you can redistribute it and/or                                        |
// | modify it under the terms of the GNU General Public                                                  |
// | License as published by the Free Software Foundation; either                                         |
// | version 2.1 of the License, or (at your option) any later version.                                   |
// |                                                                                                      |
// | This library is distributed in the hope that it will be useful,                                      |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
// | General Public License for more details.                                                             |
// |                                                                                                      |
// | You should have received a copy of the GNU General Public                                            |
// | License along with this library; if not, write to the Free Software                                  |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: enteteColonneTriable.class.php,v 1.1 2008-08-25 15:17:13 alexandre_tb Exp $
/**
* Application projet
*
* Fichier de presentation de la liste des projets pour Tela Botanica nouvelle version
*
*@package projet
//Auteur original :
*@author        Alexandre Granier <alexandre@tela-botanica.org>
//Autres auteurs :
*@author        Aucun
*@copyright     Tela-Botanica 2000-2008
// +------------------------------------------------------------------------------------------------------+
*/



/**
 * class enteteColonneTriable
 */
class enteteColonneTriable
{


   /*** Attributes: ***/

  /**
   * Nom de la colonne dont on veut afficher le lien
   * @access private
   */
  private $colonne;

  /**
   * Nom de la colonne dont on veut afficher le lien
   * @access private
   */
  private $var_colonneDeTri;
  

  /**
   * Nom de la colonne clique par l utilisateur
   * @access private
   */
  private $colonneCliquee;

  /**
   * @access private
   */
  private $ordre = 'asc';

	 /**
   * @access private
   */
  private $var_ordre ;
  
  /**
   * @access private
   */
  private $icone_asc;

  /**
   * @access private
   */
  private $icone_desc;

  /**
   * icone par defaut lorsqu aucun tri n est demande
   * @access private
   */
  private $icone_base;


  /**
   *
   * @param string nom_colonne Le nom de la colonne sur laquelle va s'effectuer les tris

   * @return 
   * @access public
   */
  public function enteteColonneTriable( $nom_colonne ) {
    $this->colonne = $nom_colonne;
  } // end of member function enteteColonneTriable

  /**
   *
   * @param string colonneDeTri 
   * @return bool
   * @access public
   */
  public function setColonneCliquee( $colonneDeTri, $var_colonneDeTri ) {
    $this->colonneCliquee = $colonneDeTri;
    $this->var_colonneDeTri = $var_colonneDeTri;
  } // end of member function setColonneCliquee

  /**
   * Precise l ordre ascendant ou descendant
   * Ne peut prendre que 2 valeurs asc ou desc
   *
   * @param string ordre 
   * @return 
   * @access public
   */
  public function setOrdre( $ordre, $var_ordre ) {
    if ($ordre != 'asc' && $ordre != 'desc') return false;
	//if ($this->colonne == $this->colonneCliquee) $this->ordre = $ordre;
	// C subtil, il faut inverser l ordre de tri pour la colonne dont le tri est
	// actif, afin de pouvoir inverser le tri
	$this->ordre = $ordre;
	if ($this->colonne == $this->colonneCliquee) {
		if ($ordre == 'asc') $this->ordre = 'desc'; else $this->ordre = 'asc';	
	}
    $this->var_ordre = $var_ordre;
  } // end of member function setOrdre

  /**
   * Pour indiquer le chemin vers l icone de fleche vers le bas
   * Renvoie false si le chemin vers l icone n existe pas
   *
   * @param string chemin_icone Le chemin vers l icone

   * @return 
   * @access public
   */
  public function setIconeAsc( $chemin_icone ) {
    $this->icone_asc = $chemin_icone;
  } // end of member function setIconeAsc

  /**
   * Pour indiquer le chemin vers l icone de fleche vers le bas
   * Renvoie false si le chemin vers l icone n existe pas
   *
   * @param string chemin_icone Chemin vers l icone indiquant un classement descendant, en general une fleche
vers le haut

   * @return bool
   * @access public
   */
  public function setIconeDesc( $chemin_icone ) {
    $this->icone_desc = $chemin_icone;
  } // end of member function setIconeDesc

  /**
   *
   * @param string chemin_icone chemin vers un fichier

   * @return bool
   * @access public
   */
  public function setIconeSansTri( $chemin_icone ) {
    $this->icone_base = $chemin_icone;
  } // end of member function setIconeSansTri

  /**
   * Permet d attribuer un template d affichage
   *
   * @param string template Permet d attribuer un template d affichage

   * @return 
   * @access public
   */
  public function setTemplate( $template ) {
    
  } // end of member function setTemplate

  /**
   * Renvoie l icone approprie pour l entete de la colonne
   *
   * @return string
   * @access public
   */
  public function getIcone( ) {
    if ($this->colonne == $this->colonneCliquee) {
    	if ($this->ordre == 'asc') {
    		return $this->icone_asc;
    	} else {
    		return $this->icone_desc;
    	}
    } else {
    	return $this->icone_base;
    }
  } // end of member function getIcone

  /**
   * Renvoie la classe approprie pour l entete de la colonne
   *
   * @return string
   * @access public
   */
  public function getClasse( ) {
    if ($this->colonne == $this->colonneCliquee) {
    	if ($this->ordre == 'asc') {
    		return 'tri_bas';
    	} else {
    		return 'tri_haut';
    	}
    } else {
    	return 'tri_sans';
    }
  } // end of member function getIcone
  
  /**
   * Renvoie le lien de la colonne
   *
   * @return string
   * @access public
   */
  public function getLien($url) {
    $url->addQueryString('projet_tri', $this->colonne);
	$url->addQueryString('projet_ordre_tri', $this->ordre);
	return $url->getURL();
  } // end of member function getLien

  /**
   * Renvoie l entete
   *
   * @return string
   * @access public
   */
  public function getEntete( ) {
    
  } // end of member function getEntete

  /**
   * similaire a getEntete()
   *
   * @return string
   * @access public
   */
  public function toHTML( ) {
    return getEntete();
  } // end of member function toHTML





} // end of enteteColonneTriable
?>