Commit a85df2038fa307b6974671877980670207edc9c3
1 parent
08700fb9
Exists in
master
and in
7 other branches
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,7 +843,10 @@ i3GEO.arvoreDeCamadas = { | ||
843 | /* | 843 | /* |
844 | Function: listaLigadosDesligados | 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 | Return: | 851 | Return: |
849 | {Array} - array com os códigos dos temas [0]=ligados [1]=desligados [2]=todos na ordem encontrada | 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,7 +925,7 @@ i3GEO.arvoreDeCamadas = { | ||
922 | 925 | ||
923 | {JSON} | 926 | {JSON} |
924 | */ | 927 | */ |
925 | - pegaTema: function pegatema(idtema){ | 928 | + pegaTema: function(idtema){ |
926 | var c,i; | 929 | var c,i; |
927 | c = i3GEO.arvoreDeCamadas.CAMADAS.length; | 930 | c = i3GEO.arvoreDeCamadas.CAMADAS.length; |
928 | for (i=0; i<c; i++){ | 931 | for (i=0; i<c; i++){ |
@@ -930,6 +933,48 @@ i3GEO.arvoreDeCamadas = { | @@ -930,6 +933,48 @@ i3GEO.arvoreDeCamadas = { | ||
930 | return (i3GEO.arvoreDeCamadas.CAMADAS[i]); | 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 | // |