Commit a85df2038fa307b6974671877980670207edc9c3

Authored by Edmar Moretti
1 parent 08700fb9

Criação do método filtraCamadas

Showing 1 changed file with 47 additions and 2 deletions   Show diff stats
classesjs/classe_arvoredecamadas.js
... ... @@ -843,7 +843,10 @@ i3GEO.arvoreDeCamadas = {
843 843 /*
844 844 Function: listaLigadosDesligados
845 845  
846   - Lista os temas que estão ligados e os que estão desligados.
  846 + Lista os temas que estão ligados e os que estão desligados
  847 + tendo como fonte de busca os checkbox existentes na árvore.
  848 +
  849 + Esse método é mais demorado pois varre a árvore toda. Porém, obtém o status verdadeiro do tema.
847 850  
848 851 Return:
849 852 {Array} - array com os códigos dos temas [0]=ligados [1]=desligados [2]=todos na ordem encontrada
... ... @@ -922,7 +925,7 @@ i3GEO.arvoreDeCamadas = {
922 925  
923 926 {JSON}
924 927 */
925   - pegaTema: function pegatema(idtema){
  928 + pegaTema: function(idtema){
926 929 var c,i;
927 930 c = i3GEO.arvoreDeCamadas.CAMADAS.length;
928 931 for (i=0; i<c; i++){
... ... @@ -930,6 +933,48 @@ i3GEO.arvoreDeCamadas = {
930 933 return (i3GEO.arvoreDeCamadas.CAMADAS[i]);
931 934 }
932 935 }
  936 + },
  937 + /*
  938 + Function: filtraCamadas
  939 +
  940 + Busca temas na variável i3GEO.arvoreDeCamadas.CAMADAS aplicando um filtro
  941 +
  942 + Parameters:
  943 +
  944 + propriedade {string} - propriedade de CAMADAS que será filtrado
  945 +
  946 + valor - valor do filtro
  947 +
  948 + operador {string} - operador entre propriedade e valor igual|diferente
  949 +
  950 + camadas {array} - array do tipo i3GEO.arvoreDeCamadas.CAMADAS
  951 +
  952 + Return:
  953 + {Array}
  954 + */
  955 + filtraCamadas: function(propriedade,valor,operador,camadas){
  956 + var resultado = [],
  957 + i = 0,
  958 + temp,
  959 + nelementos = camadas.length,
  960 + ltema;
  961 + if (nelementos > 0){
  962 + do{
  963 + ltema = camadas[i];
  964 + temp = eval("ltema."+propriedade);
  965 + if(operador === "igual"){
  966 + if(temp === valor)
  967 + {resultado.push(ltema);}
  968 + }
  969 + if(operador === "diferente"){
  970 + if(temp !== valor)
  971 + {resultado.push(ltema);}
  972 + }
  973 + i++;
  974 + }
  975 + while(i < nelementos);
  976 + }
  977 + return resultado;
933 978 }
934 979 };
935 980 //
... ...