From 1e24ec28bea01c769b12261bc156c2d2828cd2ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Lemoine?= Date: Thu, 19 Dec 2013 11:32:57 +0100 Subject: [PATCH] Add getters to ol.style.Style --- src/ol/render/canvas/canvasimmediate.js | 4 +- src/ol/render/dragbox.js | 2 +- src/ol/render/vector.js | 46 ++++++++++------ .../canvas/canvasvectorlayerrenderer.js | 2 +- src/ol/style/style.js | 55 +++++++++++++++++-- 5 files changed, 82 insertions(+), 27 deletions(-) diff --git a/src/ol/render/canvas/canvasimmediate.js b/src/ol/render/canvas/canvasimmediate.js index 0bdd011586..ef1c1e182a 100644 --- a/src/ol/render/canvas/canvasimmediate.js +++ b/src/ol/render/canvas/canvasimmediate.js @@ -218,8 +218,8 @@ ol.render.canvas.Immediate.prototype.drawFeature = function(feature, style) { if (!ol.extent.intersects(this.extent_, geometry.getExtent())) { return; } - this.setFillStrokeStyle(style.fill, style.stroke); - this.setImageStyle(style.image); + this.setFillStrokeStyle(style.getFill(), style.getStroke()); + this.setImageStyle(style.getImage()); var renderGeometry = ol.render.canvas.Immediate.GEOMETRY_RENDERES_[geometry.getType()]; goog.asserts.assert(goog.isDef(renderGeometry)); diff --git a/src/ol/render/dragbox.js b/src/ol/render/dragbox.js index 7142514672..80e938a0c8 100644 --- a/src/ol/render/dragbox.js +++ b/src/ol/render/dragbox.js @@ -96,7 +96,7 @@ ol.render.DragBox.prototype.handleMapPostCompose_ = function(event) { ]; var geometry = new ol.geom.Polygon(coordinates); var style = this.style_; - render.setFillStrokeStyle(style.fill, style.stroke); + render.setFillStrokeStyle(style.getFill(), style.getStroke()); render.drawPolygonGeometry(geometry, null); }; diff --git a/src/ol/render/vector.js b/src/ol/render/vector.js index 6143a6080f..d612492422 100644 --- a/src/ol/render/vector.js +++ b/src/ol/render/vector.js @@ -61,14 +61,15 @@ ol.renderer.vector.renderGeometryCollectionGeometry_ = */ ol.renderer.vector.renderLineStringGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.stroke)) { + var strokeStyle = style.getStroke(); + if (goog.isNull(strokeStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.LineString); var lineStringGeometry = /** @type {ol.geom.LineString} */ (geometry); var replay = replayGroup.getReplay( - style.zIndex, ol.render.ReplayType.LINE_STRING); - replay.setFillStrokeStyle(null, style.stroke); + style.getZIndex(), ol.render.ReplayType.LINE_STRING); + replay.setFillStrokeStyle(null, strokeStyle); replay.drawLineStringGeometry(lineStringGeometry, data); }; @@ -82,15 +83,16 @@ ol.renderer.vector.renderLineStringGeometry_ = */ ol.renderer.vector.renderMultiLineStringGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.stroke)) { + var strokeStyle = style.getStroke(); + if (goog.isNull(strokeStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.MultiLineString); var multiLineStringGeometry = /** @type {ol.geom.MultiLineString} */ (geometry); var replay = replayGroup.getReplay( - style.zIndex, ol.render.ReplayType.LINE_STRING); - replay.setFillStrokeStyle(null, style.stroke); + style.getZIndex(), ol.render.ReplayType.LINE_STRING); + replay.setFillStrokeStyle(null, strokeStyle); replay.drawMultiLineStringGeometry(multiLineStringGeometry, data); }; @@ -104,15 +106,17 @@ ol.renderer.vector.renderMultiLineStringGeometry_ = */ ol.renderer.vector.renderMultiPolygonGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.stroke) && goog.isNull(style.fill)) { + var fillStyle = style.getFill(); + var strokeStyle = style.getStroke(); + if (goog.isNull(strokeStyle) && goog.isNull(fillStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.MultiPolygon); var multiPolygonGeometry = /** @type {ol.geom.MultiPolygon} */ (geometry); var replay = replayGroup.getReplay( - style.zIndex, ol.render.ReplayType.POLYGON); - replay.setFillStrokeStyle(style.fill, style.stroke); + style.getZIndex(), ol.render.ReplayType.POLYGON); + replay.setFillStrokeStyle(fillStyle, strokeStyle); replay.drawMultiPolygonGeometry(multiPolygonGeometry, data); }; @@ -126,13 +130,15 @@ ol.renderer.vector.renderMultiPolygonGeometry_ = */ ol.renderer.vector.renderPointGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.image)) { + var imageStyle = style.getImage(); + if (goog.isNull(imageStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.Point); var pointGeometry = /** @type {ol.geom.Point} */ (geometry); - var replay = replayGroup.getReplay(style.zIndex, ol.render.ReplayType.IMAGE); - replay.setImageStyle(style.image); + var replay = replayGroup.getReplay( + style.getZIndex(), ol.render.ReplayType.IMAGE); + replay.setImageStyle(imageStyle); replay.drawPointGeometry(pointGeometry, data); }; @@ -146,13 +152,15 @@ ol.renderer.vector.renderPointGeometry_ = */ ol.renderer.vector.renderMultiPointGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.image)) { + var imageStyle = style.getImage(); + if (goog.isNull(imageStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.MultiPoint); var multiPointGeometry = /** @type {ol.geom.MultiPoint} */ (geometry); - var replay = replayGroup.getReplay(style.zIndex, ol.render.ReplayType.IMAGE); - replay.setImageStyle(style.image); + var replay = replayGroup.getReplay( + style.getZIndex(), ol.render.ReplayType.IMAGE); + replay.setImageStyle(imageStyle); replay.drawMultiPointGeometry(multiPointGeometry, data); }; @@ -166,14 +174,16 @@ ol.renderer.vector.renderMultiPointGeometry_ = */ ol.renderer.vector.renderPolygonGeometry_ = function(replayGroup, geometry, style, data) { - if (goog.isNull(style.fill) && goog.isNull(style.stroke)) { + var fillStyle = style.getFill(); + var strokeStyle = style.getStroke(); + if (goog.isNull(fillStyle) && goog.isNull(strokeStyle)) { return; } goog.asserts.assertInstanceof(geometry, ol.geom.Polygon); var polygonGeometry = /** @type {ol.geom.Polygon} */ (geometry); var replay = replayGroup.getReplay( - style.zIndex, ol.render.ReplayType.POLYGON); - replay.setFillStrokeStyle(style.fill, style.stroke); + style.getZIndex(), ol.render.ReplayType.POLYGON); + replay.setFillStrokeStyle(fillStyle, strokeStyle); replay.drawPolygonGeometry(polygonGeometry, data); }; diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 7354c7c3c7..fbf000ad03 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -244,7 +244,7 @@ ol.renderer.canvas.VectorLayer.prototype.renderFeature = var i, ii, style, imageStyle, imageState; for (i = 0, ii = styles.length; i < ii; ++i) { style = styles[i]; - imageStyle = style.image; + imageStyle = style.getImage(); if (!goog.isNull(imageStyle)) { if (imageStyle.imageState == ol.style.ImageState.IDLE) { goog.events.listenOnce(imageStyle, goog.events.EventType.CHANGE, diff --git a/src/ol/style/style.js b/src/ol/style/style.js index ebe3360482..efb8d8f340 100644 --- a/src/ol/style/style.js +++ b/src/ol/style/style.js @@ -16,33 +16,78 @@ ol.style.Style = function(opt_options) { var options = goog.isDef(opt_options) ? opt_options : {}; /** + * @private * @type {ol.style.Fill} */ - this.fill = goog.isDef(options.fill) ? options.fill : null; + this.fill_ = goog.isDef(options.fill) ? options.fill : null; /** + * @private * @type {ol.style.Image} */ - this.image = goog.isDef(options.image) ? options.image : null; + this.image_ = goog.isDef(options.image) ? options.image : null; /** + * @private * @type {ol.style.Stroke} */ - this.stroke = goog.isDef(options.stroke) ? options.stroke : null; + this.stroke_ = goog.isDef(options.stroke) ? options.stroke : null; /** + * @private * @type {ol.style.Text} */ - this.text = goog.isDef(options.text) ? options.text : null; + this.text_ = goog.isDef(options.text) ? options.text : null; /** + * @private * @type {number|undefined} */ - this.zIndex = options.zIndex; + this.zIndex_ = options.zIndex; }; +/** + * @return {ol.style.Fill} Fill style. + */ +ol.style.Style.prototype.getFill = function() { + return this.fill_; +}; + + +/** + * @return {ol.style.Image} Image style. + */ +ol.style.Style.prototype.getImage = function() { + return this.image_; +}; + + +/** + * @return {ol.style.Stroke} Stroke style. + */ +ol.style.Style.prototype.getStroke = function() { + return this.stroke_; +}; + + +/** + * @return {ol.style.Text} Text style. + */ +ol.style.Style.prototype.getText = function() { + return this.text_; +}; + + +/** + * @return {number|undefined} ZIndex. + */ +ol.style.Style.prototype.getZIndex = function() { + return this.zIndex_; +}; + + /** * @typedef {function(ol.Feature, number): Array.} */