index.js 5.89 KB
/*
Title: Navegador de tabelas no Postgis

Licenca:

GPL2

i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet

Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com

Este programa é software livre; você pode redistribuí-lo
e/ou modificá-lo sob os termos da Licença Pública Geral
GNU conforme publicada pela Free Software Foundation;

Este programa é distribuído na expectativa de que seja útil,
porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
Consulte a Licença Pública Geral do GNU para mais detalhes.
Você deve ter recebido uma cópia da Licença Pública Geral do
GNU junto com este programa; se não, escreva para a
Free Software Foundation, Inc., no endereço
59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
*/
if(typeof(i3GEOF) === 'undefined'){
	var i3GEOF = {};
}
/*
Classe: i3GEOF.navegarquivos

*/
i3GEOF.navegarquivos = {
	//ao concluir, o nome do arquivo sera retornado para esse objeto atribuindo o resultado ao atributo value
	retornarPara: "",
	//guarda o objeto TV
	arvore: "",
	listaShp: true,
	listaImg: true,
	listaFig: true,
	retornaDir: false,
	/*
	Variavel: aguarde

	Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela.
	*/
	aguarde: "",
	/*
		Para efeitos de compatibilidade antes da versão 4.7 que não tinha dicionário
	*/
	criaJanelaFlutuante: function(obj){
		i3GEOF.navegarquivos.iniciaDicionario(obj);
	},
	/*
	Function: iniciaDicionario

	Carrega o dicionário e chama a função que inicia a ferramenta

	O Javascript é carregado com o id i3GEOF.nomedaferramenta.dicionario_script
	*/
	iniciaDicionario: function(obj,listaShp,listaImg,listaFig,retornaDir){
		if(!obj){
			listaShp = true;
			listaImg = true;
			listaFig = true;
			retornaDir = false;
		}
		i3GEOF.navegarquivos.retornarPara = obj;
		i3GEOF.navegarquivos.listaShp = listaShp;
		i3GEOF.navegarquivos.listaImg = listaImg;
		i3GEOF.navegarquivos.listaFig = listaFig;
		i3GEOF.navegarquivos.retornaDir = retornaDir;
		if(typeof(i3GEOF.navegarquivos.dicionario) === 'undefined'){
			i3GEO.util.scriptTag(
				i3GEO.configura.locaplic+"/ferramentas/navegarquivos/dicionario.js",
				"i3GEOF.navegarquivos.iniciaJanelaFlutuante()",
				"i3GEOF.navegarquivos.dicionario_script"
			);
		}
		else{
			i3GEOF.navegarquivos.iniciaJanelaFlutuante();
		}
	},
	/*
	Function: inicia

	Inicia a ferramenta. É chamado por criaJanelaFlutuante

	Parametro:

	iddiv {String} - id do div que receberá o conteudo HTML da ferramenta
	*/
	inicia: function(){
		i3GEOF.navegarquivos.ARVORE = new YAHOO.widget.TreeView($i("i3GEOF.navegarquivos_corpo"));
		var root = i3GEOF.navegarquivos.ARVORE.getRoot();
		new YAHOO.widget.HTMLNode(
			{html:$trad('pastas',i3GEOF.navegarquivos.dicionario),enableHighlight:false,expanded:false,hasIcon:false},
			root
		);
		i3GEOF.navegarquivos.ARVORE.draw();
		i3GEOF.navegarquivos.adicionaNoNavegacaoDir(i3GEOF.navegarquivos.listaShp,i3GEOF.navegarquivos.listaImg,i3GEOF.navegarquivos.listaFig);
	},
	/*
	Function: html

	Gera o código html para apresentação das opções da ferramenta

	Retorno:

	String com o código html
	*/
	html:function(){
		return "";
	},
	/*
	Function: iniciaJanelaFlutuante

	Cria a janela flutuante para controle da ferramenta.
	*/
	iniciaJanelaFlutuante: function(){
		var janela,divid,titulo,cabecalho,minimiza;
		if ($i("i3GEOF.navegarquivos")) {
			return;
		}
		cabecalho = function(){};
		minimiza = function(){
			i3GEO.janela.minimiza("i3GEOF.navegarquivos");
		};
		//cria a janela flutuante
		titulo = "<div class='i3GeoTituloJanela'>" + $trad('arquivos',i3GEOF.navegarquivos.dicionario) + "</div>";
		janela = i3GEO.janela.cria(
			"400px",
			"300px",
			"",
			"",
			"",
			titulo,
			"i3GEOF.navegarquivos",
			false,
			"hd",
			cabecalho,
			minimiza,
			"",
			"",
			"",
			"",
			"nao"
		);
		divid = janela[2].id;
		$i("i3GEOF.navegarquivos_corpo").style.backgroundColor = "white";
		$i("i3GEOF.navegarquivos_corpo").style.textAlign = "left";
		i3GEOF.navegarquivos.aguarde = $i("i3GEOF.navegarquivos_imagemCabecalho").style;
		i3GEOF.navegarquivos.inicia(divid);
	},
	//essa funcao e definida como uma propriedade do no da arvore
	//i3GEO.arvoreDeTemas processa isso e inclui no onclick do no
	retorna: function(arquivo){
		var onde = $i(i3GEOF.navegarquivos.retornarPara);
		if(onde){
			onde.value = arquivo;
		}
		i3GEOF.navegarquivos.ARVORE.destroy();
		i3GEO.janela.destroi("i3GEOF.navegarquivos");
		return null;
	},
	//parametros listaShp:true,listaImg:true,listaFig:true
	adicionaNoNavegacaoDir: function(listaShp,listaImg,listaFig,retornaDir){
		if(i3GEO.arvoreDeTemas.LOCAPLIC == ""){
			i3GEO.arvoreDeTemas.LOCAPLIC = i3GEO.configura.locaplic;
		}
		var temp = function(retorno){
			var drives,iglt,ig,drive,tempNode;
			drives = i3GEO.arvoreDeTemas.DRIVES;
			if(drives == undefined || drives == "" || drives.length === 0){
				drives = retorno.data.drives;
			}
			i3GEO.arvoreDeTemas.DRIVES = drives;
			iglt = drives.length;
			tempNode = i3GEOF.navegarquivos.ARVORE.getRoot();
			ig=0;
			do{
				drive = new YAHOO.widget.HTMLNode(
					{
						listaShp:i3GEOF.navegarquivos.listaShp,
						listaImg:i3GEOF.navegarquivos.listaImg,
						listaFig:i3GEOF.navegarquivos.listaFig,
						retornaDir: i3GEOF.navegarquivos.retornaDir,
						html:drives[ig].nome,
						caminho:drives[ig].caminho,
						enableHighlight:true,
						expanded:false,
						funcaoClick: "i3GEOF.navegarquivos.retorna"
					},
					tempNode
				);
				drive.setDynamicLoad(i3GEO.arvoreDeTemas.montaDir, 1);
				ig+=1;
			}
			while(ig<iglt);
			i3GEOF.navegarquivos.ARVORE.draw();
		};
		i3GEO.php.listadrives(temp);
	}
};