From c743d3e8a5399f4998fe519f0c6a3167fc21712f Mon Sep 17 00:00:00 2001 From: tschaub Date: Thu, 29 Sep 2011 17:26:23 -0600 Subject: [PATCH] Passing renderer options to the sketch layer. The draw feature control should pass preferred render and other renderer options to the sketch handler. --- lib/OpenLayers/Control/DrawFeature.js | 5 +++++ tests/Control/DrawFeature.html | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/lib/OpenLayers/Control/DrawFeature.js b/lib/OpenLayers/Control/DrawFeature.js index 8d4a11136f..e7d4556ed6 100644 --- a/lib/OpenLayers/Control/DrawFeature.js +++ b/lib/OpenLayers/Control/DrawFeature.js @@ -83,6 +83,11 @@ OpenLayers.Control.DrawFeature = OpenLayers.Class(OpenLayers.Control, { ); this.layer = layer; this.handlerOptions = this.handlerOptions || {}; + this.handlerOptions.layerOptions = OpenLayers.Util.applyDefaults( + this.handlerOptions.layerOptions, { + renderers: layer.renderers, rendererOptions: layer.rendererOptions + } + ); if (!("multi" in this.handlerOptions)) { this.handlerOptions.multi = this.multi; } diff --git a/tests/Control/DrawFeature.html b/tests/Control/DrawFeature.html index bcaca1c5e4..ef0be5ab64 100644 --- a/tests/Control/DrawFeature.html +++ b/tests/Control/DrawFeature.html @@ -37,6 +37,33 @@ t.ok(!control.handler.multi, "handlerOptions.multi respected"); } + + function test_rendererOptions(t) { + t.plan(2); + + var map = new OpenLayers.Map("map"); + var renderers = ["Canvas", "VML"]; + + var layer = new OpenLayers.Layer.Vector(null, { + renderers: renderers, + rendererOptions: {zIndexing: true}, + isBaseLayer: true + }); + map.addLayer(layer); + + var control = new OpenLayers.Control.DrawFeature( + layer, OpenLayers.Handler.Polygon, {autoActivate: true} + ); + map.addControl(control); + + var sketchLayer = control.handler.layer; + + t.eq(sketchLayer.renderers, renderers, "Preferred renderers"); + t.eq(sketchLayer.rendererOptions.zIndexing, true, "renderer options"); + + map.destroy(); + + } function test_drawFeature(t) { t.plan(3);