Passing renderer options to the sketch layer.

The draw feature control should pass preferred render and other renderer options to the sketch handler.
This commit is contained in:
tschaub
2011-09-29 17:26:23 -06:00
parent cca0bf5e38
commit c743d3e8a5
2 changed files with 32 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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);