diff --git a/apidoc_config/Menu.txt b/apidoc_config/Menu.txt index 4f5bde35ce..425c7ebdcd 100644 --- a/apidoc_config/Menu.txt +++ b/apidoc_config/Menu.txt @@ -409,7 +409,6 @@ Group: OpenLayers { File: Renderer (no auto-title, OpenLayers/Renderer.js) File: Canvas (no auto-title, OpenLayers/Renderer/Canvas.js) File: ElementsIndexer (no auto-title, OpenLayers/Renderer/Elements.js) - File: NG (no auto-title, OpenLayers/Renderer/NG.js) File: SVG (no auto-title, OpenLayers/Renderer/SVG.js) File: VML (no auto-title, OpenLayers/Renderer/VML.js) } # Group: Renderer diff --git a/doc_config/Menu.txt b/doc_config/Menu.txt index 411a903e8f..14845eac23 100644 --- a/doc_config/Menu.txt +++ b/doc_config/Menu.txt @@ -409,7 +409,6 @@ Group: OpenLayers { File: Renderer (no auto-title, OpenLayers/Renderer.js) File: Canvas (no auto-title, OpenLayers/Renderer/Canvas.js) File: ElementsIndexer (no auto-title, OpenLayers/Renderer/Elements.js) - File: NG (no auto-title, OpenLayers/Renderer/NG.js) File: SVG (no auto-title, OpenLayers/Renderer/SVG.js) File: VML (no auto-title, OpenLayers/Renderer/VML.js) } # Group: Renderer diff --git a/lib/OpenLayers.js b/lib/OpenLayers.js index a33dd25e9b..3b6669c9e6 100644 --- a/lib/OpenLayers.js +++ b/lib/OpenLayers.js @@ -257,7 +257,6 @@ "OpenLayers/Geometry/MultiPolygon.js", "OpenLayers/Renderer.js", "OpenLayers/Renderer/Elements.js", - "OpenLayers/Renderer/NG.js", "OpenLayers/Renderer/SVG.js", "OpenLayers/Renderer/Canvas.js", "OpenLayers/Renderer/VML.js", diff --git a/lib/OpenLayers/Layer/Vector.js b/lib/OpenLayers/Layer/Vector.js index 3909920af6..edb653bd16 100644 --- a/lib/OpenLayers/Layer/Vector.js +++ b/lib/OpenLayers/Layer/Vector.js @@ -473,6 +473,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, { moveTo: function(bounds, zoomChanged, dragging) { OpenLayers.Layer.prototype.moveTo.apply(this, arguments); + // OpenLayers.Renderer.NG is deprecated var ng = (OpenLayers.Renderer.NG && this.renderer instanceof OpenLayers.Renderer.NG); if (ng) { dragging || this.renderer.updateDimensions(zoomChanged); @@ -534,6 +535,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, { * {Boolean} The layer was redrawn. */ redraw: function() { + // OpenLayers.Renderer.NG is deprecated if (OpenLayers.Renderer.NG && this.renderer instanceof OpenLayers.Renderer.NG) { this.drawn = false; } diff --git a/lib/OpenLayers/Renderer/NG.js b/lib/OpenLayers/Renderer/NG.js deleted file mode 100644 index 0830e60a1f..0000000000 --- a/lib/OpenLayers/Renderer/NG.js +++ /dev/null @@ -1,135 +0,0 @@ -/* Copyright (c) 2006-2012 by OpenLayers Contributors (see authors.txt for - * full list of contributors). Published under the Clear BSD license. - * See http://svn.openlayers.org/trunk/openlayers/license.txt for the - * full text of the license. */ - -/** - * @requires OpenLayers/Renderer/Elements.js - */ - -/** - * Class: OpenLayers.Renderer.NG - * - * Inherits from: - * - - */ -OpenLayers.Renderer.NG = OpenLayers.Class(OpenLayers.Renderer.Elements, { - - /** - * Constant: labelNodeType - * {String} The node type for text label containers. To be defined by - * subclasses. - */ - labelNodeType: null, - - /** - * Constructor: OpenLayers.Renderer.NG - * - * Parameters: - * containerID - {String} - * options - {Object} options for this renderer. Supported options are: - * * yOrdering - {Boolean} Whether to use y-ordering - * * zIndexing - {Boolean} Whether to use z-indexing. Will be ignored - * if yOrdering is set to true. - */ - - /** - * Method: updateDimensions - * To be extended by subclasses - here we set positioning related styles - * on HTML elements, subclasses have to do the same for renderer specific - * elements (e.g. viewBox, width and height of the rendererRoot) - * - * Parameters: - * zoomChanged - {Boolean} Has the zoom changed? If so, subclasses may have - * to update feature styles/dimensions. - */ - updateDimensions: function(zoomChanged) { - var mapExtent = this.map.getExtent(); - var renderExtent = mapExtent.scale(3); - this.setExtent(renderExtent, true); - var res = this.getResolution(); - var div = this.rendererRoot.parentNode; - var layerLeft = parseFloat(div.parentNode.style.left); - var layerTop = parseFloat(div.parentNode.style.top); - div.style.left = ((renderExtent.left - mapExtent.left) / res - layerLeft) + "px"; - div.style.top = ((mapExtent.top - renderExtent.top) / res - layerTop) + "px"; - }, - - /** - * Method: resize - */ - setSize: function() { - this.map.getExtent() && this.updateDimensions(); - }, - - /** - * Method: drawFeature - * Draw the feature. The optional style argument can be used - * to override the feature's own style. This method should only - * be called from layer.drawFeature(). - * - * Parameters: - * feature - {} - * style - {} - * - * Returns: - * {Boolean} true if the feature has been drawn completely, false if not, - * undefined if the feature had no geometry - */ - drawFeature: function(feature, style) { - if(style == null) { - style = feature.style; - } - if (feature.geometry) { - var rendered = this.drawGeometry(feature.geometry, style, feature.id); - if(rendered !== false && style.label) { - var location = feature.geometry.getCentroid(); - this.drawText(feature.id, style, location); - } else { - this.removeText(feature.id); - } - return rendered; - } - }, - - /** - * Method: drawText - * Function for drawing text labels. - * This method is only called by the renderer itself. - * - * Parameters: - * featureId - {String|DOMElement} - * style - {Object} - * location - {}, will be modified inline - * - * Returns: - * {DOMElement} container holding the text label (to be populated by - * subclasses) - */ - drawText: function(featureId, style, location) { - var label; - if (typeof featureId !== "string") { - label = featureId; - } else { - label = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX, this.labelNodeType); - label._featureId = featureId; - } - label._style = style; - label._x = location.x; - label._y = location.y; - if(style.labelXOffset || style.labelYOffset) { - var xOffset = isNaN(style.labelXOffset) ? 0 : style.labelXOffset; - var yOffset = isNaN(style.labelYOffset) ? 0 : style.labelYOffset; - var res = this.getResolution(); - location.move(xOffset*res, yOffset*res); - } - - if(label.parentNode !== this.textRoot) { - this.textRoot.appendChild(label); - } - - return label; - }, - - CLASS_NAME: "OpenLayers.Renderer.NG" -}); diff --git a/lib/deprecated.js b/lib/deprecated.js index 40333c185c..b769532009 100644 --- a/lib/deprecated.js +++ b/lib/deprecated.js @@ -21,7 +21,7 @@ * @requires OpenLayers/Format/WKT.js * @requires OpenLayers/Format/XML.js * @requires OpenLayers/Geometry.js - * @requires OpenLayers/Renderer/NG.js + * @requires OpenLayers/Renderer/Elements.js */ /** @@ -4978,6 +4978,133 @@ OpenLayers.Geometry.Rectangle = OpenLayers.Class(OpenLayers.Geometry, { CLASS_NAME: "OpenLayers.Geometry.Rectangle" }); +/** + * Class: OpenLayers.Renderer.NG + * + * Inherits from: + * - + */ +OpenLayers.Renderer.NG = OpenLayers.Class(OpenLayers.Renderer.Elements, { + + /** + * Constant: labelNodeType + * {String} The node type for text label containers. To be defined by + * subclasses. + */ + labelNodeType: null, + + /** + * Constructor: OpenLayers.Renderer.NG + * + * Parameters: + * containerID - {String} + * options - {Object} options for this renderer. Supported options are: + * * yOrdering - {Boolean} Whether to use y-ordering + * * zIndexing - {Boolean} Whether to use z-indexing. Will be ignored + * if yOrdering is set to true. + */ + + /** + * Method: updateDimensions + * To be extended by subclasses - here we set positioning related styles + * on HTML elements, subclasses have to do the same for renderer specific + * elements (e.g. viewBox, width and height of the rendererRoot) + * + * Parameters: + * zoomChanged - {Boolean} Has the zoom changed? If so, subclasses may have + * to update feature styles/dimensions. + */ + updateDimensions: function(zoomChanged) { + var mapExtent = this.map.getExtent(); + var renderExtent = mapExtent.scale(3); + this.setExtent(renderExtent, true); + var res = this.getResolution(); + var div = this.rendererRoot.parentNode; + var layerLeft = parseFloat(div.parentNode.style.left); + var layerTop = parseFloat(div.parentNode.style.top); + div.style.left = ((renderExtent.left - mapExtent.left) / res - layerLeft) + "px"; + div.style.top = ((mapExtent.top - renderExtent.top) / res - layerTop) + "px"; + }, + + /** + * Method: resize + */ + setSize: function() { + this.map.getExtent() && this.updateDimensions(); + }, + + /** + * Method: drawFeature + * Draw the feature. The optional style argument can be used + * to override the feature's own style. This method should only + * be called from layer.drawFeature(). + * + * Parameters: + * feature - {} + * style - {} + * + * Returns: + * {Boolean} true if the feature has been drawn completely, false if not, + * undefined if the feature had no geometry + */ + drawFeature: function(feature, style) { + if(style == null) { + style = feature.style; + } + if (feature.geometry) { + var rendered = this.drawGeometry(feature.geometry, style, feature.id); + if(rendered !== false && style.label) { + var location = feature.geometry.getCentroid(); + this.drawText(feature.id, style, location); + } else { + this.removeText(feature.id); + } + return rendered; + } + }, + + /** + * Method: drawText + * Function for drawing text labels. + * This method is only called by the renderer itself. + * + * Parameters: + * featureId - {String|DOMElement} + * style - {Object} + * location - {}, will be modified inline + * + * Returns: + * {DOMElement} container holding the text label (to be populated by + * subclasses) + */ + drawText: function(featureId, style, location) { + var label; + if (typeof featureId !== "string") { + label = featureId; + } else { + label = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX, this.labelNodeType); + label._featureId = featureId; + } + label._style = style; + label._x = location.x; + label._y = location.y; + if(style.labelXOffset || style.labelYOffset) { + var xOffset = isNaN(style.labelXOffset) ? 0 : style.labelXOffset; + var yOffset = isNaN(style.labelYOffset) ? 0 : style.labelYOffset; + var res = this.getResolution(); + location.move(xOffset*res, yOffset*res); + } + + if(label.parentNode !== this.textRoot) { + this.textRoot.appendChild(label); + } + + return label; + }, + + CLASS_NAME: "OpenLayers.Renderer.NG" +}); + /** * Class: OpenLayers.Renderer.SVG2 *