[Users] GeoExt.LegendPanel and TYPE RASTER

Eric Lemoine eric.lemoine at camptocamp.com
Sun Jun 13 14:28:47 CEST 2010


On Sunday, June 13, 2010, Eric Lemoine <eric.lemoine at camptocamp.com> wrote:
> On Saturday, June 12, 2010, Richard LEHAUT <richard.lehaut at crpf.fr> wrote:
>>
>>
>>
>>
>>
>>
>>
>> Eric Lemoine a écrit :
>>
>>   On Friday, June 11, 2010, Richard LEHAUT <richard.lehaut at crpf.fr> <richard.lehaut at crpf.fr> wrote:
>>
>>
>>     Eric Lemoine a écrit :
>>
>> Hi
>>
>> I'm not sure I understand your question. Why don't you use "Ortho",
>> "Calvados 2001", and "Channel 2006" as the names of your OpenLayers
>> layers? The legend panel will use these names as the labels.
>>
>> Cheers,
>>
>>
>>
>> Hi,
>>
>> There is a single layer openlayer, it's Ortho.
>> 2001 Calvados, Orne, 2008, is information I want displayed under the layer name. To be more precise, it's  the date of shooting aerial photography. The information at this time is recorded anywhere.
>>
>> I hope this is clearer.
>>
>>
>>
>> Yes, sorry I didn't understand you the first time.
>>
>> So I guess you'd like to use HTML (e.g. Ortho.<br>2001 Calvados.) in
>> the layer's name and have GeoExt render this HTML for the layer
>> labels.
>>
>> I haven't actually tested that myself, but looking at the code I think
>> it won't work. This is because GeoExt.LayerLegend uses the "text"
>> property as opposed to the "html" property when it creates
>> Ext.form.Label objects. See [*]. I'm curious to know if we could use
>> "html" instead of "text" in GeoExt.
>>
>> Cheers,
>>
>> [*] <http://trac.geoext.org/browser/core/trunk/geoext/lib/GeoExt/widgets/LayerLegend.js#L54>
>>
>>
>>
>> Hi
>>
>> I got the desired result, Following your instructions and this post
>> (*). To test, I wrote the caption in red.
>> What do you think of this method? There is two méthods modified,
>> initComponent and Update
>>
>> (*)
>> https://www.extjs.com/forum/showthread.php?72648-How-to-set-html-of-label
>> Thank you for your help
>> Richard LEHAUT
>>
>> Code
>>     /** private: method[initComponent]
>>     initComponent: function() {
>>         GeoExt.LayerLegend.superclass.initComponent.call(this);
>>         this.autoEl = {};
>>         this.add({
>>             xtype: "label",
>>             text: this.getLayerTitle(this.layerRecord),
>>             cls: 'x-form-item x-form-item-label' +
>>                 (this.labelCls ? ' ' + this.labelCls : '')
>>         });
>>     },
>>     CORRECTION INTERPRETATION HTML DU TITLE
>>      */
>>
>>     initComponent: function() {
>>         GeoExt.LayerLegend.superclass.initComponent.call(this);
>>         this.autoEl = {};
>>         var label = new Ext.form.Label({
>>             text: 'Hello',
>>             cls: 'x-form-item x-form-item-label' +
>>                 (this.labelCls ? ' ' + this.labelCls : '')
>>         });
>>         label.setText('<span style="color:
>> red;">'+this.getLayerTitle(this.layerRecord)+'</span>', false);
>>         this.add(label);
>>     },
>>
>>     /** private: method[update]
>>      *  Updates the legend.
>>     update: function() {
>>         var title = '<span style="color:
>> red;">'+this.getLayerTitle(Hmm... so setText can receive HTML strings. Then, I don't see why the
> "text" property could not. What if you leave the GeoExt code
> unmodified and use HTML in the layer name?
>
> new OpenLayers.Layer.WMS('<span style="color:red;">Ortho</span>', ...);

Actually it doesn't work. Feel free to create a trac ticket with a
patch implementing your solution. Thanks,


-- 
Eric Lemoine

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac, Cedex

Tel : 00 33 4 79 44 44 96
Mail : eric.lemoine at camptocamp.com
http://www.camptocamp.com


More information about the Users mailing list