/*
Title: Árvore de temas
File: i3geo/classesjs/classe_arvodetemas.js
About: Licença
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@mma.gov.br
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;
tanto a versão 2 da Licença.
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(i3GEO) == 'undefined'){
i3GEO = new Array();
}
/*
Class: i3GEO.arvoreDeTemas
Monta a árvore com os temas disponíveis para ser adicionados ao mapa.
*/
i3GEO.arvoreDeTemas = {
/*
Property: OPCOESADICIONAIS
Objeto com a definição das propriedades que serão utilizadas na inclusão dos ícones adicionais de adição de temas e no item de descrição de cada tema.
Example:
var obj = {
idonde: "",
incluiArvore: true,
uploaddbf: true,
uploadlocal: true,
downloadbase: true,
conectarwms: true,
conectargeorss: true,
nuvemTags: true,
navegacaoDir: false,
incluibusca: true,
kml: true,
qrcode: true,
mini: true,
estrelas:true,
refresh: true
}
Type:
{Object}
*/
OPCOESADICIONAIS: {
idonde: "",
incluiArvore: true,
uploaddbf: true,
uploadlocal: true,
downloadbase: true,
conectarwms: true,
conectargeorss: true,
nuvemTags: true,
navegacaoDir: false,
incluibusca: true,
kml: true,
qrcode: true,
mini: true,
estrelas: true,
refresh: true
},
/*
Property: FATORESTRELA
Valor que será utilizado para dividir o valor bruto do número de acessos de cada tema.
A divisão é utilizada para definir quantas estrelas serão mostradas na árvore de opções adicionais.
Type:
{Numeric}
*/
FATORESTRELA: "1",
/*
Property: INCLUISISTEMAS
Inclui na árvore a lista de sistemas adicionais definidos no i3geo?
Type:
{Boolean}
*/
INCLUISISTEMAS: true,
/*
Property: INCLUIWMS
Inclui na árvore a lista de Web Services WMS?
Type:
{Boolean}
*/
INCLUIWMS: true,
/*
Property: FILTRADOWNLOAD
Não mostra na árvore os nós que não possuem temas para download
Type:
{Boolean}
*/
FILTRADOWNLOAD: false,
/*
Property: FILTRAOGC
Não mostra na árvore os nós que não permitem a geração de WMS
Type:
{Boolean}
*/
FILTRAOGC: false,
/*
Property: ATIVATEMA
Nome da função que será incluída no evento onclick do elemento checkbox adicionado no início do nome de um tema.
Type:
{String}
*/
ATIVATEMA: "",
/*
Property: IDSMENUS
Array com a lista de ids que serão considerados na montagem da árvore. Por default é vazio, o que significa que todos os menus serão considerados.
Type:
{Array}
*/
IDSMENUS: new Array(),
/*
Variable: IDHTML
Armazena o ID do elemento HTML onde a árvore será incluida
Type:
{String}
*/
IDHTML: null,
/*
Variable: LOCAPLIC
Endereço da aplicação i3geo. Utilizado para definir o caminho para a chamada em AJAX.
Type:
{String}
*/
LOCAPLIC: null,
/*
Variable: SID
Código da seção aberta no servidor pelo i3Geo
Type:
{String}
*/
SID: null,
/*
Variable: ARVORE
Objeto com a árvore criada com YAHOO.widget.TreeView
Type:
{YAHOO.widget.TreeView}
*/
ARVORE: null,
/*
Variable: DRIVES
Objeto JSON com a lista de drives no servidor que podem ser abertos na opção de navegação pelos diretórios
Type:
{JSON}
*/
DRIVES: null,
/*
Variable: SISTEMAS
Objeto JSON com a lista de sistemas existentes
Type:
{JSON}
*/
SISTEMAS: null,
/*
Variable: MENUS
Armazena o objeto JSON com a lista de menus resultante da função listaMenus
Type:
{JSON}
*/
MENUS: null,
/*
Variable: GRUPOS
Armazena o objeto JSON com a última lista de grupos obtida
Type:
{JSON}
*/
GRUPOS: null,
/*
Variable: SUBGRUPOS
Armazena o objeto JSON com a última lista de sub-grupos obtida
Type:
{JSON}
*/
SUBGRUPOS: null,
/*
Variable: TEMAS
Armazena o objeto JSON com a última lista de temas obtida
Type:
{JSON}
*/
TEMAS: null,
/*
Function: listaWMS
Lista os WMS cadastrados preenchendo o nó OGC-WMS
*/
listaWMS: function(){
var monta = function(retorno){
var node = i3GEO.arvoreDeTemas.ARVORE.getNodeByProperty("idwms","raiz");
var raiz = retorno.data.canais;
var nraiz = raiz.length;
var cor = "rgb(51, 102, 102)";
for (i=0;i
";
var d = {html:html,id_ws:raiz[i].id_ws,url:raiz[i].link,nivel:0};
var tempNode = new YAHOO.widget.HTMLNode(d, node, false,true);
tempNode.setDynamicLoad(i3GEO.arvoreDeTemas.listaLayersWMS, 1);
if(cor == "rgb(51, 102, 102)")
{var cor = "rgb(47, 70, 50)";}
else{var cor = "rgb(51, 102, 102)";}
}
node.loadComplete();
};
i3GEO.php.listaRSSwsARRAY(monta,"WMS");
},
listaLayersWMS: function(node){
//node = no;
var monta = function(retorno){
try{var n = retorno.data.length;}
catch(m){node.loadComplete();return;}
var cor = "rgb(51, 102, 102)";
for (i=0;i";
html += layer+" - "+titulo;
html += " ";
return(html);
},
/*
Function: listaMenus
Lista os menus disponíveis.
Pesquisa no banco de dados administrativo ou na variável de configuração (veja ms_configura.php) a lista de menus disponíveis.
O resultado é incluído em i3GEO.arvoreDeTemas.MENUS.
A propriedade i3GEO.arvoreDetemas.IDSMENUS pode ser utilizada para filtrar alista de menus que será utilizada.
Parameters:
g_sid - {String} Código da seção PHP criada ao abrir o i3Geo
g_locaplic - {String} Endereço da aplicação (i3geo) onde fica o diretório classesphp
funcao - {String} nome da função que será executada quando a lista for recebida. Se for "", não é chamada.
*/
listaMenus: function(g_sid,g_locaplic,funcao) {
var retorno = function(retorno) {
if(i3GEO.arvoreDeTemas.IDSMENUS.length == 0)
i3GEO.arvoreDeTemas.MENUS = retorno.data;
else{
i3GEO.arvoreDeTemas.MENUS = new Array();
var c = retorno.data.length;
var m = i3GEO.arvoreDeTemas.IDSMENUS.length;
for (var i=0, j=c; i