<DIV>
<DIV>
<DIV>
<DIV>Ok,</DIV>
<DIV>&nbsp;</DIV>
<DIV>Here is the solution (joined in jstreeview.rtf)</DIV>
<DIV>I have a treeview legend with expand/collapsed groups.</DIV>
<DIV>For this to work, In&nbsp;the map file, i have for instance for a layer</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; METADATA<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "GROUP"&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"Hydrologie"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "DESCRIPTION"&nbsp;&nbsp;&nbsp; &nbsp;"Mer"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHOWINLEGEND&nbsp; "0"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LAYER_INDEX&nbsp;&nbsp; "0"<BR>&nbsp;&nbsp;&nbsp; END<BR></DIV>
<DIV>SHOWINLEGEND allows me to add a layer on the map without showing it in legend !!! ; i could put SHOWINLEGEND&nbsp; "1" in other layers or nothing.</DIV>
<DIV>&nbsp;</DIV>
<DIV>I also used JSAPI in my template in order to leave a group expanded when the users does it after refreshing the map (for Zoomin Zoom out etc...)</DIV>
<DIV>&lt;cwc2 type="cwcjsapi" debug="false"/&gt;<BR>&lt;cwc2 type="SharedResource" name="CWCJSAPI"/&gt;<BR>but an Update reload the page&nbsp;so I loose the environnement !</DIV>
<DIV>As I'm a basic user of javascript, i cannot go further !!</DIV>
<DIV>&nbsp;</DIV>
<DIV>I also noticed that the&nbsp;&nbsp;Scale widget&nbsp;&nbsp;&lt;cwc2 type="Scale" /&gt; don't work properly in this mode, it cannot write the scale ; it writes (undefined);</DIV>
<DIV>I checked sample_enhanced_jsapi.html and it's the same error !!!</DIV>
<DIV>&nbsp;</DIV>
<DIV>Hopping it could help someone !</DIV>
<DIV>&nbsp;</DIV>
<DIV>Thanks,</DIV>
<DIV>&nbsp;</DIV>
<DIV>Edith</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">cool!<BR><BR>You should post your whole solution :)<BR><BR>Paul<BR><BR>Edith TAKI wrote:<BR>&gt; Hi Paul,<BR>&gt; <BR>&gt; It works !!!<BR>&gt; <BR>&gt; I needed to create a metadata for each layer to retrieve group name<BR>&gt; and i changed the checkbox for the layer like this<BR>&gt; id="layer-[metadata name=group]-[metadata name=layer_index]"<BR>&gt; <BR>&gt; Thank you !!!<BR>&gt; <BR>&gt; */Paul Spencer <PSPENCER@DMSOLUTIONS.CA>/* wrote:<BR>&gt; <BR>&gt; Edith,<BR>&gt; <BR>&gt; I would tackle this by doing the following:<BR>&gt; <BR>&gt; 1. add metadata to each of your layers called layer_index and make it<BR>&gt; sequential 0 - nLayers<BR>&gt; <BR>&gt; 2. build your legend template file like this:<BR>&gt; <BR>&gt; [leg_group_html]<BR>&gt; [leg_group_name]<BR>&gt; <BR>&gt; [/leg_group_html]<BR>&gt; [leg_layer_html]<BR>&gt; <BR>&gt; onclick='toggleLayer( this
 )'&gt;[leg_layer_name]<BR>&gt; <BR>&gt; [/leg_layer_html]<BR>&gt; <BR>&gt; <BR>&gt; 3. add a couple of javascript functions to your template<BR>&gt; <BR>&gt; function toggleGroup( obj )<BR>&gt; {<BR>&gt; var nLayers = 20; //set to number of layers in map file<BR>&gt; for(i=0; i<BR>&gt; {<BR>&gt; var layer_cb = document.getElementById( 'layer_'+obj.name+'_'+i );<BR>&gt; if (layer_cb)<BR>&gt; layer_cb.! checked = obj.checked;<BR>&gt; }<BR>&gt; }<BR>&gt; <BR>&gt; function toggleLayer( obj )<BR>&gt; {<BR>&gt; var group = (obj.id.split( "_" ))[1];<BR>&gt; var group_cb = document.getElementById( group );<BR>&gt; //case 1: unchecked layer, can uncheck the group<BR>&gt; if (group_cb)<BR>&gt; {<BR>&gt; if (!obj.checked)<BR>&gt; {<BR>&gt; group_cb.checked = false;<BR>&gt; return;<BR>&gt; }<BR>&gt; else // now have to check all the layers in this group<BR>&gt; {<BR>&gt; var nLayers = 20; //set to number of layers in map file<BR>&gt; for(i=0; i<BR>&gt; {<BR>&gt; layer_cb =
 document.getElementById( 'layer_'group+'_'+i );<BR>&gt; if (cb &amp;&amp; !cb.checked) //stop if any are unchecked<BR>&gt; {<BR>&gt; group_cb.checked = false;<BR>&gt; return;<BR>&gt; }<BR>&gt; }<BR>&gt; group_cb.checked = true; //all checked, can turn on group<BR>&gt; }<BR>&gt; }<BR>&gt; }<BR>&gt; <BR>&gt; Note this code is extremely rough and completely untested. Good Luck!!!<BR>&gt; <BR>&gt; Cheers<BR>&gt; <BR>&gt; Paul<BR>&gt; <BR>&gt; Edith TAKI wrote:<BR>&gt; &gt; Hi,<BR>&gt; &gt;<BR>&gt; &gt; Thank you Ferencik for your solution but you don"t need to<BR>&gt; &gt; select/unselect layers in a group for your soluti! on ...<BR>&gt; &gt;<BR>&gt; &gt; My legend is generated dynamicaly with mapfile and<BR>&gt; legend_template and<BR>&gt; &gt; look like that<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; Group 1<BR>&gt; &gt;<BR>&gt; &gt; * layer 1<BR>&gt; &gt; * layer 2<BR>&gt; &gt; * layer 3<BR>&gt; &gt;<BR>&gt; &gt; Group 2<BR>&gt; &gt;<BR>&gt; &gt; * layer1<BR>&gt; &gt; * layer2<BR>&gt;
 &gt;<BR>&gt; &gt;<BR>&gt; &gt; and i have a checkbox for each line ; those for layers are coded<BR>&gt; like that :<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; value="[leg_layer_name]"<BR>&gt; &gt; [if name=layer_status oper=eq value=1]CHECKED[/if]<BR>&gt; &gt; [if name=layer_status oper=eq value=2]CHECKED[/if]&gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; what i need now is to code the group so that a click on a group<BR>&gt; could<BR>&gt; &gt; check ou uncheck the layers depending.<BR>&gt; &gt;<BR>&gt; &gt; For map refreshing, I used CWCJSAPI and i just solve the problem of<BR>&gt; &gt; navigation buttons like zoomin zoomout, they no longer refresh<BR>&gt; all the page;<BR>&gt; &gt; Only Update button need now to reload the page b! ut I have no<BR>&gt; idea for<BR>&gt; &gt; Javascript so it'll be difficult !!<BR>&gt; &gt;<BR>&gt; &gt; Thank you for your help<BR>&gt; &gt;<BR>&gt; &gt; */Jano Ferencik /* wrote:<BR>&gt; &gt;<BR>&gt; &gt; Hi Edith<BR>&gt; &gt;<BR>&gt; &gt; the
 situation is like this..I created a javascript treemenu wich I<BR>&gt; &gt; am attaching<BR>&gt; &gt; to this email as a zip archive....you can modify and use it<BR>&gt; &gt; ....but....there are<BR>&gt; &gt; 2 things..<BR>&gt; &gt; 1 as long as The update Map widget refreshes the page You can do<BR>&gt; &gt; nothing about<BR>&gt; &gt; it... the menu will allways refresh and appear like on first<BR>&gt; &gt; load...you could<BR>&gt; &gt; solve this by creating some javascript handling some events...wich<BR>&gt; &gt; will keep the<BR>&gt; &gt; opened group open after refreshing....the script should use the<BR>&gt; :active<BR>&gt; &gt; pseudoclass of group(wich in this case must be links)...(this is<BR>&gt; &gt; only an advice<BR>&gt; &gt; )...I though one tome to do it but could take me a loomng time as my<BR>&gt; &gt; javascript<BR>&gt; &gt; skills ! are only basic<BR>&gt; &gt;<BR>&gt; &gt; In my case I have another problem...I fave a huge number of layers<BR>&gt; &gt; in
 may<BR>&gt; &gt; Chameleon application(about 50) and I created a legend on multiple<BR>&gt; &gt; levels...it<BR>&gt; &gt; is refreshing i! tself on Update Map and second I think that the<BR>&gt; &gt; number of layers<BR>&gt; &gt; conducted to decreasing of speed when loading the map....<BR>&gt; &gt; A possibble solution could be the new Ka-Map project from DM<BR>&gt; &gt; solutions(ie. the<BR>&gt; &gt; map doesn't refresh itslelf on the basic actions like panning or<BR>&gt; &gt; zooming or<BR>&gt; &gt; layer controls).....but you will have to wait for the application<BR>&gt; &gt; Ka-map to be<BR>&gt; &gt; released....i think it will happen soon(ask Paul Spencer about<BR>&gt; this) :))<BR>&gt; &gt;<BR>&gt; &gt; Regards<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; &gt; Hi list,<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; I have a problem similar to jstreeview ; I developped<BR>&gt; &gt; legendTemplate to show<BR>&gt; &gt; at page load only groups so the user could developp a group by<BR>&gt; &gt;
 clicki! ng its id<BR>&gt; &gt; to show the layers in the group ; I have two problems :<BR>&gt; &gt; &gt; 1 - using Javascript to hide / show layers for each group.<BR>&gt; &gt; &gt; I think Jano Ferencik (who first posted about Jstreeview) succeed<BR>&gt; &gt; doing<BR>&gt; &gt; &gt; this ; could you help me ?<BR>&gt; &gt; &gt; 2 - I have the same problem after Update, the page looks like on<BR>&gt; &gt; the fisrt<BR>&gt; &gt; &gt; l! oading and user loose his environnment, only groups are visible.<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; can somebody have any suggestions ?<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; Thanks<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt;<BR>&gt; &gt; &gt; ---------------------------------<BR>&gt; &gt; &gt; Post your free ad now! Yahoo! Canada Personals<BR>&gt; &gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; ___________________________<BR>&gt; &gt; Cv-ul tau ia 500 euro/luna!<BR>&gt; &gt;
 http://500.myjob.ro<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; ------------------------------------------------------------------------<BR>&gt; &gt; Post your free ad no! w! *Yahoo! Canada Personals*<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; ------------------------------------------------------------------------<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; [leg_group_html]<BR>&gt; &gt; <BR>&gt; <BR>&gt; <BR>&gt; &gt;<BR>&gt; <BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; <BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; value="[leg_group_name]"<BR>&gt; &gt; [if name=layer_status oper=eq value=1]CHECKED[/if]<BR>&gt; &gt; [if name=layer_status oper=eq value=2]CHECKED[/if]<BR>&gt; &gt; onclick="checkAll();"&gt;<BR>&gt; &gt;<BR>&gt; &gt; [leg_group_name] <?xml:namespace prefix = javascript /><javascript:void(0);><BR>&gt; &gt;<BR>&gt; <BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; <BR>&gt; &gt;<BR>&gt; <BR>&gt; &gt; [/leg_group_html]<BR>&gt; &gt;<BR>&gt; &gt; [leg_layer_html order=ascending
 opt_flag=15]<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; <BR>&gt; &gt; [if name=SHOWINLEGEND oper=isnull]<BR>&gt; &gt;<BR>&gt;&gt;<BR>&gt;&gt; value="[leg_layer_name]"<BR>&gt;&gt; [if name=layer_status oper=eq value=1]CHECKED[/if]<BR>&gt;&gt; [if name=layer_status oper=eq value=2]CHECKED[/if]&gt;<BR>&gt;&gt;<BR>&gt;&gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt;&gt;<BR>&gt;&gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; [if name=wms_title oper=isnull]<BR>&gt; &gt; [leg_layer_name]<BR>&gt; &gt; [/if]<BR>&gt; &gt;<BR>&gt; &gt; [if name=wms_title oper=isset]<BR>&gt; &gt; [metadata name=WMS_TITLE]<BR>&gt; &gt; [/if]<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; [/if]<BR>&gt; &gt;<BR>&gt; &gt; [if name=SHOWINLEGEND oper=isset]<BR>&gt; &gt;<BR>&gt; &gt; [/if]<BR>&gt; &gt;<BR>&gt; <BR>&gt; &gt; [/leg_layer_html]<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt;<BR>&gt; &gt; ------------------------------------------------------------------------<BR>&gt; &gt;<BR>&gt; &gt;
 _______________________________________________<BR>&gt; &gt; Chameleon mailing list<BR>&gt; &gt; Chameleon@lists.maptools.org<BR>&gt; &gt; http://lists.maptools.org/mailman/listinfo/chameleon<BR>&gt; <BR>&gt; -- <BR>&gt; +-----------------------------------------------------------------+<BR>&gt; |Paul Spencer pspencer@dmsolutions.ca |<BR>&gt; +-----------------------------------------------------------------+<BR>&gt; |Applications &amp; Software Development |<BR>&gt; |DM Solutions Group Inc http://www.dmsolutions.ca/|<BR>&gt; +-----------------------------------------------------------------+<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; 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></javascript:void(0);></DIV></DIV></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>