//Copyright (C) 2003-2010 AJLSM
//Voir le fichier LICENCE-ThesX
//$Id: ThesXTreeView.js 19316 2010-09-06 10:52:49Z jcwiklinski $

/**
 * @fileOverview Classe permettant de créer l'arbre du cadre de ThesX dans les formulaires de recherhe
 * @author Johan Cwiklinski
 */
/**
 * @class Classe permettant de créer l'arbre de ThesX dans les formulaires de recherche
 * @augments TreeView
 * @augments AjaxRequestHandler
 * @author Johan Cwiklinski
 */
var ThesXTreeView = new Class(/** @lends ThesXTreeView */{
	Extends: TreeView,
	Implements: [AjaxRequestHandler],

	thesxdiv: null,
	
	/**
	* <strong>Constructor</strong><br/> Constructeur de l'arbre ThesX
	* @param {String} thesId identifiant du thesaurus à interroger
	* @param {Object} div Le div dans lequel on doit charger l'arbre
	*/
	initialize: function(thesId, div){
		this.thesxdiv = div;
		var url = 'functions/thesx/functions/' + thesId + '/list-concepts/__thesx__root__.ajax-html';
		this.parent(url, div, null, null);

		this.mainContainer.getParent().setStyle('height','');
		this.noTreeMessage = 'Aucune entrée dans le thésaurus.'; //TODO: i18n - check

		// On redefini la fonction permettant de recuperer le lien pour charger les enfants
		this.getTree().getChildrenUrl = function(node){
			return node.getDataHref();
		}
	},

	/**
	* Fonction permettant d'initialiser les evenements auxquel l'arbre réagira
	*/
	initEvents: function(){
		this.boundOnSelect = this.onSelect.bind(this);
		this.tree.addEvent('onSelect', this.boundOnSelect);
	},

	/**
	* Surcharge de la fonction de selection du noeud
	* @param {Mif.Tree.Node} node
	*/
	onSelect: function(node){
		var _n = node.getDOM('name');
		searchForm.addOccurrence(
			this.thesxdiv.getParent('tr').getElement('.pl-form-suggest-values'),
			_n.getFirst().get('text')
		);
	}
});
