[Users] GeoExt.LegendPanel and TYPE RASTER
Eric Lemoine
eric.lemoine at camptocamp.com
Sun Jun 13 08:23:16 CEST 2010
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(this.layerRecord)+'</span>'
> if (this.items.get(0).text !== title) {
> // we need to update the title
> this.items.get(0).setText(title, false);
> }
> },
> CORRECTION INTERPRETATION HTML DU TITLE
> */
> update: function() {
> var title = '<span style="color:
> red;">'+this.getLayerTitle(this.layerRecord)+'</span>'
> if (this.items.get(0).text !== title) {
> // we need to update the title
> this.items.get(0).setText(title, false);
> }
> },
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>', ...);
Cheers,
--
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