/*
	Copyright (c) 2006-2007, ePages GmbH
	All Rights Reserved.

	epages.cartridges.de_epages.mediagallery.widget.Imagedbtree

*/
dojo.provide("epages.cartridges.de_epages.mediagallery.widget.Imagedbtree");
dojo.require("dijit.Tree");

dojo.declare(
	"epages.cartridges.de_epages.mediagallery.widget.Imagedbtree",
	[dijit.Tree],
	{
		/**
		* public properties
		*/
		listId            : "",
		label             : 'ImageDB',
		persist            : true,
		/**
		* private properties
		*/
		/**
		* public methods
		*/
		postCreate  : function() {
			this.inherited("postCreate", arguments);
		},

		onClick: function(item, node){
			//check if title of tree was clicked and load files if neccessary
			var filelist = $$(this.listId);
			var directory = this.label;
			if(node && node.isTree == true){
				filelist.destroyDescendants();
			}
			if(item){
				directory = item.title;
				if(this.listId != ""){
					var files = this.store.parseFiles(item.objectId);
					if(files){
						filelist.setChildren(files);
					}
					else{
						filelist.destroyDescendants();
					}
				}
			}
			this.focusNode(node);
			dojo.publish(this.id+'/select',[{node:node, currentDirectory: directory}]);
		},

		focusNode: function(node) {
			this.blurNode();
			try{
				node.labelNode.focus();
			}
			catch(e){
				console.error(e);
			}
			dojo.addClass(node.labelNode,"Selected");
			this.lastFocused = node;
		},

		blurNode: function() {
			var node = this.lastFocused;
			if(!node){
				return;
			}
			dojo.removeClass(node.labelNode, "Selected");
			var labelNode = node.labelNode;
			dojo.removeClass(labelNode, "dijitTreeLabelFocused");
			labelNode.setAttribute("tabIndex", "-1");
			this.lastFocused = null;
		},

		getLabelClass: function(/*dojo.data.Item*/ item){
			// summary: user overridable function to return CSS class name to display label
			//if no return value is set dojo adds a class "undefined" to every label in the tree
			return '';
		}
});