<DIV>Hi Paul,</DIV>
<DIV>&nbsp;</DIV>
<DIV>It works !!! </DIV>
<DIV>&nbsp;</DIV>
<DIV>I needed&nbsp;to create a metadata for each layer to retrieve group name </DIV>
<DIV>and i&nbsp;changed the checkbox for the layer like this</DIV>
<DIV>id="layer-[metadata name=group]-[metadata name=layer_index]"</DIV>
<DIV>&nbsp;</DIV>
<DIV>Thank you !!!</DIV>
<DIV><BR><B><I>Paul Spencer &lt;pspencer@dmsolutions.ca&gt;</I></B> wrote:</DIV>
<BLOCKQUOTE class=replbq style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">Edith,<BR><BR>I would tackle this by doing the following:<BR><BR>1. add metadata to each of your layers called layer_index and make it <BR>sequential 0 - nLayers<BR><BR>2. build your legend template file like this:<BR><BR>[leg_group_html]<BR><INPUT type=checkbox onchange="toogleGroup( this <br>)" name=[leg_group_name]>[leg_group_name]<BR><BR>[/leg_group_html]<BR>[leg_layer_html]<BR><INPUT id="layer_[layer_group]_[metadata <br>name=layer_index]" type=checkbox value=[leg_layer_name] name=legendlayername[] <br>onclick='toggleLayer( this )'&gt;[leg_layer_name]<BR><BR>[/leg_layer_html]<BR><BR><BR>3. add a couple of javascript functions to your template<BR><BR>function toggleGroup( obj )<BR>{<BR>var nLayers = 20; //set to number of layers in map file<BR>for(i=0; i<NLAYERS; i++)<br> {<BR>var layer_cb = document.getElementById( 'layer_'+obj.name+'_'+i );<BR>if (layer_cb)<BR>layer_cb.checked =
 obj.checked;<BR>}<BR>}<BR><BR>function toggleLayer( obj )<BR>{<BR>var group = (obj.id.split( "_" ))[1];<BR>var group_cb = document.getElementById( group );<BR>//case 1: unchecked layer, can uncheck the group<BR>if (group_cb)<BR>{<BR>if (!obj.checked)<BR>{<BR>group_cb.checked = false;<BR>return;<BR>}<BR>else // now have to check all the layers in this group<BR>{<BR>var nLayers = 20; //set to number of layers in map file<BR>for(i=0; i<NLAYERS; i++)<br> {<BR>layer_cb = document.getElementById( 'layer_'group+'_'+i );<BR>if (cb &amp;&amp; !cb.checked) //stop if any are unchecked<BR>{<BR>group_cb.checked = false;<BR>return;<BR>}<BR>}<BR>group_cb.checked = true; //all checked, can turn on group<BR>}<BR>}<BR>}<BR><BR>Note this code is extremely rough and completely untested. Good Luck!!!<BR><BR>Cheers<BR><BR>Paul<BR><BR>Edith TAKI wrote:<BR>&gt; Hi,<BR>&gt; <BR>&gt; Thank you Ferencik for your solution but you don"t need to <BR>&gt; select/unselect layers in a group for your solution
 ...<BR>&gt; <BR>&gt; My legend is generated dynamicaly with mapfile and legend_template and <BR>&gt; look like that<BR>&gt; <BR>&gt; <BR>&gt; Group 1<BR>&gt; <BR>&gt; * layer 1<BR>&gt; * layer 2<BR>&gt; * layer 3<BR>&gt; <BR>&gt; Group 2<BR>&gt; <BR>&gt; * layer1<BR>&gt; * layer2<BR>&gt; <BR>&gt; <BR>&gt; and i have a checkbox for each line ; those for layers are coded like that :<BR>&gt; <BR>&gt; <INPUT type=checkbox name=legendlayername[] <br>&gt; value="[leg_layer_name]"<BR>&gt; [if name=layer_status oper=eq value=1]CHECKED[/if]<BR>&gt; [if name=layer_status oper=eq value=2]CHECKED[/if]&gt;<BR>&gt; <BR>&gt; </SPAN><BR>&gt; <BR>&gt; what i need now is to code the group so that a click on a group could <BR>&gt; check ou uncheck the layers depending.<BR>&gt; <BR>&gt; For map refreshing, I used CWCJSAPI and i just solve the problem of <BR>&gt; navigation buttons like zoomin zoomout, they no longer refresh all the page;<BR>&gt; Only Update button need now to reload the page but I have
 no idea for <BR>&gt; Javascript so it'll be difficult !!<BR>&gt; <BR>&gt; Thank you for your help<BR>&gt; <BR>&gt; */Jano Ferencik <FERENCIK.IOAN@PERSONAL.RO>/* wrote:<BR>&gt; <BR>&gt; Hi Edith<BR>&gt; <BR>&gt; the situation is like this..I created a javascript treemenu wich I<BR>&gt; am attaching<BR>&gt; to this email as a zip archive....you can modify and use it<BR>&gt; ....but....there are<BR>&gt; 2 things..<BR>&gt; 1 as long as The update Map widget refreshes the page You can do<BR>&gt; nothing about<BR>&gt; it... the menu will allways refresh and appear like on first<BR>&gt; load...you could<BR>&gt; solve this by creating some javascript handling some events...wich<BR>&gt; will keep the<BR>&gt; opened group open after refreshing....the script should use the :active<BR>&gt; pseudoclass of group(wich in this case must be links)...(this is<BR>&gt; only an advice<BR>&gt; )...I though one tome to do it but could take me a loomng time as my<BR>&gt; javascript<BR>&gt; skills are only
 basic<BR>&gt; <BR>&gt; In my case I have another problem...I fave a huge number of layers<BR>&gt; in may<BR>&gt; Chameleon application(about 50) and I created a legend on multiple<BR>&gt; levels...it<BR>&gt; is refreshing i! tself on Update Map and second I think that the<BR>&gt; number of layers<BR>&gt; conducted to decreasing of speed when loading the map....<BR>&gt; A possibble solution could be the new Ka-Map project from DM<BR>&gt; solutions(ie. the<BR>&gt; map doesn't refresh itslelf on the basic actions like panning or<BR>&gt; zooming or<BR>&gt; layer controls).....but you will have to wait for the application<BR>&gt; Ka-map to be<BR>&gt; released....i think it will happen soon(ask Paul Spencer about this) :))<BR>&gt; <BR>&gt; Regards<BR>&gt; <BR>&gt; <BR>&gt; &gt; Hi list,<BR>&gt; &gt;<BR>&gt; &gt; I have a problem similar to jstreeview ; I developped<BR>&gt; legendTemplate to show<BR>&gt; at page load only groups so the user could developp a group by<BR>&gt; clicking its
 id<BR>&gt; to show the layers in the group ; I have two problems :<BR>&gt; &gt; 1 - using Javascript to hide / show layers for each group.<BR>&gt; &gt; I think Jano Ferencik (who first posted about Jstreeview) succeed<BR>&gt; doing<BR>&gt; &gt; this ; could you help me ?<BR>&gt; &gt; 2 - I have the same problem after Update, the page looks like on<BR>&gt; the fisrt<BR>&gt; &gt; l! oading and user loose his environnment, only groups are visible.<BR>&gt; &gt;<BR>&gt; &gt; can somebody have any suggestions ?<BR>&gt; &gt;<BR>&gt; &gt; Thanks<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; ---------------------------------<BR>&gt; &gt; Post your free ad now! Yahoo! Canada Personals<BR>&gt; &gt;<BR>&gt; <BR>&gt; <BR>&gt; <BR>&gt; <BR>&gt; <BR>&gt; ___________________________<BR>&gt; Cv-ul tau ia 500 euro/luna!<BR>&gt; http://500.myjob.ro<BR>&gt; <BR>&gt; <BR>&gt; ------------------------------------------------------------------------<BR>&gt; Post your free ad now!
 *Yahoo! Canada Personals* <BR>&gt; <HTTP: ca.personals.yahoo.com /><BR>&gt; <BR>&gt; <BR>&gt; ------------------------------------------------------------------------<BR>&gt; <BR>&gt; <BR>&gt; <!-- LEGEND--><BR>&gt; [leg_group_html]<BR>&gt; </BLOCKQUOTE><BR>&gt; 
<DIV id=[leg_group_name]><BR>&gt; <BR>&gt; 
<DIV class=groupLabel><BR>&gt; <BR>&gt; <INPUT type=checkbox name=legendgroupname[] <br>&gt; value="[leg_group_name]"<BR>&gt; [if name=layer_status oper=eq value=1]CHECKED[/if]<BR>&gt; [if name=layer_status oper=eq value=2]CHECKED[/if]<BR>&gt; onclick="checkAll();"&gt;<BR>&gt; <BR>&gt; <A onclick="toggleLayer('[leg_group_name]_layer');" href="javascript:void(0);">[leg_group_name] </A><BR>&gt; </DIV><!-- GroupLabel--><BR>&gt; <BR>&gt; </DIV><BR>&gt; 
<DIV id=[leg_group_name]_layer style="DISPLAY: none"><BR>&gt; [/leg_group_html]<BR>&gt; <BR>&gt; [leg_layer_html order=ascending opt_flag=15]<BR>&gt; <BR>&gt; 
<DIV><BR>&gt; [if name=SHOWINLEGEND oper=isnull]<BR>&gt; <SPAN class=layerTitle><BR>&gt; <INPUT type=checkbox name=legendlayername[] <br>&gt; value="[leg_layer_name]"<BR>&gt; [if name=layer_status oper=eq value=1]CHECKED[/if]<BR>&gt; [if name=layer_status oper=eq value=2]CHECKED[/if]&gt;<BR>&gt; <BR>&gt; </SPAN><BR>&gt; <BR>&gt; <SPAN><BR>&gt; <IMG src="http://ca.f611.mail.yahoo.com/ym/[leg_icon]"><BR>&gt; </SPAN><BR>&gt; <BR>&gt; <BR>&gt; [if name=wms_title oper=isnull]<BR>&gt; <SPAN class=layerLabel>[leg_layer_name] </SPAN><BR>&gt; [/if]<BR>&gt; <BR>&gt; [if name=wms_title oper=isset]<BR>&gt; <SPAN class=layerLabel>[metadata name=WMS_TITLE] </SPAN><BR>&gt; [/if]<BR>&gt; <BR>&gt; <BR>&gt; [/if]<BR>&gt; <BR>&gt; [if name=SHOWINLEGEND oper=isset]<BR>&gt; <INPUT type=hidden value=[leg_layer_name] name=legendlayername[]><BR>&gt; [/if]<BR>&gt; </DIV><BR>&gt; [/leg_layer_html]<BR>&gt; <BR>&gt;
<SCRIPT language=javascript><br>> <br>> function checkAll()<br>> {<br>> <br>> }<br>> <br>> </SCRIPT>
 <BR>&gt; <BR>&gt; <BR>&gt; ------------------------------------------------------------------------<BR>&gt; <BR>&gt; _______________________________________________<BR>&gt; Chameleon mailing list<BR>&gt; Chameleon@lists.maptools.org<BR>&gt; http://lists.maptools.org/mailman/listinfo/chameleon<BR><BR>-- <BR>+-----------------------------------------------------------------+<BR>|Paul Spencer pspencer@dmsolutions.ca |<BR>+-----------------------------------------------------------------+<BR>|Applications &amp; Software Development |<BR>|DM Solutions Group Inc http://www.dmsolutions.ca/|<BR>+-----------------------------------------------------------------+<BR>
<BLOCKQUOTE></BLOCKQUOTE></DIV><p><br><hr size=1>Post your free ad now! <a href="http://ca.personals.yahoo.com/"><b>Yahoo! Canada Personals</b></a><br>