[Chameleon] JSTreeView

Paul Spencer pspencer at dmsolutions.ca
Mon May 30 09:08:27 EDT 2005


cool!

You should post your whole solution :)

Paul

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

-- 
+-----------------------------------------------------------------+
|Paul Spencer                           pspencer at dmsolutions.ca   |
+-----------------------------------------------------------------+
|Applications & Software Development                              |
|DM Solutions Group Inc                 http://www.dmsolutions.ca/|
+-----------------------------------------------------------------+


More information about the Chameleon mailing list