Finish pullups for RC2.

#1498 Easily turning off/overriding default select and temporary intent
        styles
  #1501 GeoRSS format tests fail in Safari
  #1502 Events register method fails if listeners member is not an array
  #1503 panning off for odd-sized viewport
  #1504 doc review


git-svn-id: http://svn.openlayers.org/branches/openlayers/2.6@6835 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
crschmidt
2008-04-09 17:58:44 +00:00
parent 4085a2c220
commit 53b20137cb
40 changed files with 193 additions and 154 deletions

View File

@@ -17,16 +17,14 @@
* OpenLayers custom string, number and function functions are described here.
*/
/*********************
* *
* STRING *
* *
*********************/
/**
* Namespace: OpenLayers.String
* Contains convenience functions for string manipulation.
*/
OpenLayers.String = {
/**
* APIFunction: OpenLayers.String.startsWith
* APIFunction: startsWith
* Test whether a string starts with another string.
*
* Parameters:
@@ -41,7 +39,7 @@ OpenLayers.String = {
},
/**
* APIFunction: OpenLayers.String.contains
* APIFunction: contains
* Test whether a string contains another string.
*
* Parameters:
@@ -56,7 +54,7 @@ OpenLayers.String = {
},
/**
* APIFunction: OpenLayers.String.trim
* APIFunction: trim
* Removes leading and trailing whitespace characters from a string.
*
* Parameters:
@@ -72,7 +70,7 @@ OpenLayers.String = {
},
/**
* APIFunction: OpenLayers.String.camelize
* APIFunction: camelize
* Camel-case a hyphenated string.
* Ex. "chicken-head" becomes "chickenHead", and
* "-chicken-head" becomes "ChickenHead".
@@ -94,7 +92,7 @@ OpenLayers.String = {
},
/**
* APIFunction: OpenLayers.String.format
* APIFunction: format
* Given a string with tokens in the form ${token}, return a string
* with tokens replaced with properties from the given context
* object. Represent a literal "${" by doubling it, e.g. "${${".
@@ -209,28 +207,26 @@ if (!String.prototype.camelize) {
};
}
/*********************
* *
* NUMBER *
* *
*********************/
/**
* Namespace: OpenLayers.Number
* Contains convenience functions for manipulating numbers.
*/
OpenLayers.Number = {
/**
* Property: OpenLayers.Number.decimalSeparator
* Property: decimalSeparator
* Decimal separator to use when formatting numbers.
*/
decimalSeparator: ".",
/**
* Property: OpenLayers.Number.thousandsSeparator
* Property: thousandsSeparator
* Thousands separator to use when formatting numbers.
*/
thousandsSeparator: ",",
/**
* APIFunction: OpenLayers.Number.limitSigDigs
* APIFunction: limitSigDigs
* Limit the number of significant digits on a float.
*
* Parameters:
@@ -250,7 +246,7 @@ OpenLayers.Number = {
},
/**
* APIFunction: OpenLayers.Number.format
* APIFunction: format
* Formats a number for output.
*
* Parameters:
@@ -324,15 +320,13 @@ if (!Number.prototype.limitSigDigs) {
};
}
/*********************
* *
* FUNCTION *
* *
*********************/
/**
* Namespace: OpenLayers.Function
* Contains convenience functions for function manipulation.
*/
OpenLayers.Function = {
/**
* APIFunction: OpenLayers.Function.bind
* APIFunction: bind
* Bind a function to an object. Method to easily create closures with
* 'this' altered.
*
@@ -357,7 +351,7 @@ OpenLayers.Function = {
},
/**
* APIFunction: OpenLayers.Function.bindAsEventListener
* APIFunction: bindAsEventListener
* Bind a function to an object, and configure it to receive the event
* object as first parameter when called.
*
@@ -416,16 +410,14 @@ if (!Function.prototype.bindAsEventListener) {
};
}
/*********************
* *
* ARRAY *
* *
*********************/
/**
* Namespace: OpenLayers.Array
* Contains convenience functions for array manipulation.
*/
OpenLayers.Array = {
/**
* APIMethod: OpenLayers.Array.filter
* APIMethod: filter
* Filter an array. Provides the functionality of the
* Array.prototype.filter extension to the ECMA-262 standard. Where
* available, Array.prototype.filter will be used.

View File

@@ -18,25 +18,25 @@ OpenLayers.Bounds = OpenLayers.Class({
/**
* Property: left
* {Number}
* {Number} Minimum horizontal coordinate.
*/
left: null,
/**
* Property: bottom
* {Number}
* {Number} Minimum vertical coordinate.
*/
bottom: null,
/**
* Property: right
* {Number}
* {Number} Maximum horizontal coordinate.
*/
right: null,
/**
* Property: top
* {Number}
* {Number} Maximum vertical coordinate.
*/
top: null,
@@ -349,7 +349,7 @@ OpenLayers.Bounds = OpenLayers.Class({
*
* Parameters:
* bounds - {<OpenLayers.Bounds>}
* inclusive - {<Boolean>} Whether or not to include the border. Default
* inclusive - {Boolean} Whether or not to include the border. Default
* is true.
*
* Returns:
@@ -384,10 +384,10 @@ OpenLayers.Bounds = OpenLayers.Class({
* APIMethod: containsBounds
*
* bounds - {<OpenLayers.Bounds>}
* partial - {<Boolean>} If true, only part of passed-in bounds needs be
* partial - {Boolean} If true, only part of passed-in bounds needs be
* within this bounds. If false, the entire passed-in bounds must be
* within. Default is false
* inclusive - {<Boolean>} Whether or not to include the border. Default is
* inclusive - {Boolean} Whether or not to include the border. Default is
* true.
*
* Returns:

View File

@@ -103,7 +103,7 @@ OpenLayers.Control = OpenLayers.Class({
/**
* Property: active
* {boolean} null
* {Boolean} The control is active.
*/
active: null,

View File

@@ -30,8 +30,8 @@ OpenLayers.Control.DragPan = OpenLayers.Class(OpenLayers.Control, {
/**
* Method: draw
* Creates a Drag handler, using <OpenLayers.Control.PanMap.panMap> and
* <OpenLayers.Control.PanMap.panMapDone> as callbacks.
* Creates a Drag handler, using <panMap> and
* <panMapDone> as callbacks.
*/
draw: function() {
this.handler = new OpenLayers.Handler.Drag(this,

View File

@@ -72,7 +72,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
/**
* Property: selectControl
* {<OpenLayers.Control.Select>}
* {<OpenLayers.Control.SelectFeature>}
*/
selectControl: null,
@@ -99,7 +99,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
/**
* APIProperty: virtualStyle
* {<OpenLayers.Feature.Vector.Style>}
* {Object} A symbolizer to be used for virtual vertices.
*/
virtualStyle: null,

View File

@@ -10,6 +10,9 @@
/**
* Class: OpenLayers.Control.NavToolbar
*
* Inherits from:
* - <OpenLayers.Control.Panel>
*/
OpenLayers.Control.NavToolbar = OpenLayers.Class(OpenLayers.Control.Panel, {

View File

@@ -16,7 +16,7 @@
* when there are no states to restore.
*
* Inherits from:
* - <OpenLayers.Control.Control>
* - <OpenLayers.Control>
*/
OpenLayers.Control.NavigationHistory = OpenLayers.Class(OpenLayers.Control, {
@@ -32,7 +32,7 @@ OpenLayers.Control.NavigationHistory = OpenLayers.Class(OpenLayers.Control, {
/**
* APIProperty: previous
* {OpenLayers.Control} A button type control whose trigger method restores
* {<OpenLayers.Control>} A button type control whose trigger method restores
* the previous state managed by this control.
*/
previous: null,
@@ -46,7 +46,7 @@ OpenLayers.Control.NavigationHistory = OpenLayers.Class(OpenLayers.Control, {
/**
* APIProperty: next
* {OpenLayers.Control} A button type control whose trigger method restores
* {<OpenLayers.Control>} A button type control whose trigger method restores
* the next state managed by this control.
*/
next: null,

View File

@@ -8,7 +8,7 @@
*/
/**
* Class: OpenLayers.PanZoom
* Class: OpenLayers.Control.PanZoom
*
* Inherits from:
* - <OpenLayers.Control>

View File

@@ -12,7 +12,6 @@
*
* Inherits from:
* - <OpenLayers.Control.PanZoom>
* - <OpenLayers.Control>
*/
OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
@@ -56,7 +55,7 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
zoomWorldIcon: false,
/**
* Constructor: <OpenLayers.Control.PanZoomBar>
* Constructor: OpenLayers.Control.PanZoomBar
*/
initialize: function() {
OpenLayers.Control.PanZoom.prototype.initialize.apply(this, arguments);

View File

@@ -15,7 +15,7 @@
OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
/**
* Property: controls
* Array({<OpenLayers.Control>})
* {Array(<OpenLayers.Control>)}
*/
controls: null,

View File

@@ -532,7 +532,9 @@ OpenLayers.Events = OpenLayers.Class({
*/
register: function (type, obj, func) {
if (func != null) {
if (func != null &&
((this.eventTypes && OpenLayers.Util.indexOf(this.eventTypes, type) != -1) ||
OpenLayers.Util.indexOf(this.BROWSER_EVENTS, type) != -1)) {
if (obj == null) {
obj = this.object;
}

View File

@@ -161,6 +161,10 @@ OpenLayers.Feature = OpenLayers.Class({
*
* If no 'lonlat' is set, returns null.
* If no this.marker has been created, no anchor is sent.
*
* Note - the returned popup object is 'owned' by the feature, so you
* cannot use the popup's destroy method to discard the popup.
* Instead, you must use the feature's destroyPopup
*
* Note - this.popup is set to return value
*

View File

@@ -68,9 +68,6 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
* Creates a comparison rule.
*
* Parameters:
* params - {Object} Hash of parameters for this rule:
* -
* - value:
* options - {Object} An optional object with properties to set on the
* rule
*
@@ -204,7 +201,7 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
* value - {String} or {Number}, same as property
*
* Returns:
* {boolean}
* {Boolean}
*/
binaryCompare: function(context, property, value) {
switch (this.type) {

View File

@@ -19,7 +19,7 @@ OpenLayers.Filter.FeatureId = OpenLayers.Class(OpenLayers.Filter, {
/**
* APIProperty: fids
* {Array(<String>)} Feature Ids to evaluate this rule against. To be passed
* {Array(String)} Feature Ids to evaluate this rule against. To be passed
* To be passed inside the params object.
*/
fids: null,
@@ -50,7 +50,7 @@ OpenLayers.Filter.FeatureId = OpenLayers.Class(OpenLayers.Filter, {
* for plain features against the id.
*
* Returns:
* {boolean} true if the rule applies, false if it does not
* {Boolean} true if the rule applies, false if it does not
*/
evaluate: function(feature) {
for (var i=0; i<this.fids.length; i++) {

View File

@@ -267,7 +267,7 @@ OpenLayers.Format.GeoRSS = OpenLayers.Class(OpenLayers.Format.XML, {
* Accept Feature Collection, and return a string.
*
* Parameters:
* features - Array({<OpenLayers.Feature.Vector>}) List of features to serialize into a string.
* features - {Array(<OpenLayers.Feature.Vector>)} List of features to serialize into a string.
*/
write: function(features) {
var georss;

View File

@@ -283,7 +283,7 @@ OpenLayers.Format.OSM = OpenLayers.Class(OpenLayers.Format.XML, {
* in tools like JOSM.
*
* Parameters:
* features - Array({<OpenLayers.Feature.Vector>})
* features - {Array(<OpenLayers.Feature.Vector>)}
*/
write: function(features) {
if (!(features instanceof Array)) {

View File

@@ -5,9 +5,9 @@
/**
* @requires OpenLayers/Format/XML.js
* @requires OpenLayers/Style.js
* @requires OpenLayers/Rule/FeatureId.js
* @requires OpenLayers/Rule/Logical.js
* @requires OpenLayers/Rule/Comparison.js
* @requires OpenLayers/Filter/FeatureId.js
* @requires OpenLayers/Filter/Logical.js
* @requires OpenLayers/Filter/Comparison.js
*/
/**

View File

@@ -31,7 +31,7 @@ OpenLayers.Geometry.MultiPoint = OpenLayers.Class(
* Create a new MultiPoint Geometry
*
* Parameters:
* components - Array({<OpenLayers.Geometry.Point>})
* components - {Array(<OpenLayers.Geometry.Point>)}
*
* Returns:
* {<OpenLayers.Geometry.MultiPoint>}

View File

@@ -33,7 +33,7 @@ OpenLayers.Geometry.Polygon = OpenLayers.Class(
*
*
* Parameters:
* components - Array({<OpenLayers.Geometry.LinearRing>})
* components - {Array(<OpenLayers.Geometry.LinearRing>)}
*/
initialize: function(components) {
OpenLayers.Geometry.Collection.prototype.initialize.apply(this,

View File

@@ -6,15 +6,8 @@
* @requires OpenLayers/Geometry.js
*/
/**
* Class: OpenLayers.Geometry.Surface
*/
OpenLayers.Geometry.Surface = OpenLayers.Class(OpenLayers.Geometry, {
/**
* Constructor: OpenLayers.Geometry.Surface
*
*/
initialize: function() {
OpenLayers.Geometry.prototype.initialize.apply(this, arguments);
},

View File

@@ -79,7 +79,7 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
/**
* Property: timerId
* {Number} The id of the timeout waiting to clear the <delayedEvent>.
* {Number} The id of the timeout waiting to clear the <delayedCall>.
*/
timerId: null,

View File

@@ -997,6 +997,8 @@ OpenLayers.Layer = OpenLayers.Class({
/**
* APIMethod: getViewPortPxFromLonLat
* Returns a pixel location given a map location. This method will return
* fractional pixel values.
*
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
@@ -1011,8 +1013,8 @@ OpenLayers.Layer = OpenLayers.Class({
var resolution = this.map.getResolution();
var extent = this.map.getExtent();
px = new OpenLayers.Pixel(
Math.round(1/resolution * (lonlat.lon - extent.left)),
Math.round(1/resolution * (extent.top - lonlat.lat))
(1/resolution * (lonlat.lon - extent.left)),
(1/resolution * (extent.top - lonlat.lat))
);
}
return px;

View File

@@ -26,7 +26,7 @@ OpenLayers.Layer.GeoRSS = OpenLayers.Class(OpenLayers.Layer.Markers, {
/**
* Property: features
* Array({<OpenLayers.Feature>})
* {Array(<OpenLayers.Feature>)}
*/
features: null,

View File

@@ -9,8 +9,8 @@
/**
* Class: OpenLayers.Layer.MapServer.Untiled
* Deprecated, to be removed in 3.0 - instead use OpenLayers.Layer.MapServer and
* pass the option 'singleTile' as true.
* *Deprecated*. To be removed in 3.0. Instead use OpenLayers.Layer.MapServer
* and pass the option 'singleTile' as true.
*
* Inherits from:
* - <OpenLayers.Layer.MapServer>

View File

@@ -23,7 +23,7 @@ OpenLayers.Layer.Markers = OpenLayers.Class(OpenLayers.Layer, {
/**
* Property: markers
* Array({<OpenLayers.Marker>}) internal marker list
* {Array(<OpenLayers.Marker>)} internal marker list
*/
markers: null,

View File

@@ -13,8 +13,8 @@
* option. See Ticket #953 for more details.
*
* Inherits from:
* - <OpenLayers.Layers.EventPane>
* - <OpenLayers.Layers.FixedZoomLevels>
* - <OpenLayers.Layer.EventPane>
* - <OpenLayers.Layer.FixedZoomLevels>
*/
OpenLayers.Layer.MultiMap = OpenLayers.Class(
OpenLayers.Layer.EventPane, OpenLayers.Layer.FixedZoomLevels, {

View File

@@ -50,7 +50,7 @@ OpenLayers.Layer.Text = OpenLayers.Class(OpenLayers.Layer.Markers, {
/**
* Property: features
* Array({<OpenLayers.Feature>})
* {Array(<OpenLayers.Feature>)}
*/
features: null,

View File

@@ -87,13 +87,13 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
/**
* APIProperty: features
* Array({<OpenLayers.Feature.Vector>})
* {Array(<OpenLayers.Feature.Vector>)}
*/
features: null,
/**
* Property: selectedFeatures
* Array({<OpenLayers.Feature.Vector>})
* {Array(<OpenLayers.Feature.Vector>)}
*/
selectedFeatures: null,
@@ -118,7 +118,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
/**
* Property: renderers
* Array({String}) List of supported Renderer classes. Add to this list to
* {Array(String)} List of supported Renderer classes. Add to this list to
* add support for additional renderers. This list is ordered:
* the first renderer which returns true for the 'supported()'
* method will be used, if not defined in the 'renderer' option.

View File

@@ -9,7 +9,7 @@
/**
* Class: OpenLayers.Layer.WMS.Untiled
* Deprecated, to be removed in 3.0 - instead use OpenLayers.Layer.WMS and
* *Deprecated*. To be removed in 3.0. Instead use OpenLayers.Layer.WMS and
* pass the option 'singleTile' as true.
*
* Inherits from:

View File

@@ -820,7 +820,7 @@ OpenLayers.Map = OpenLayers.Class({
* APIMethod: addLayers
*
* Parameters:
* layers - Array({<OpenLayers.Layer>})
* layers - {Array(<OpenLayers.Layer>)}
*/
addLayers: function (layers) {
for (var i = 0; i < layers.length; i++) {
@@ -1593,8 +1593,8 @@ OpenLayers.Map = OpenLayers.Class({
var newPx = this.getViewPortPxFromLonLat(lonlat);
if ((originPx != null) && (newPx != null)) {
this.layerContainerDiv.style.left = (originPx.x - newPx.x) + "px";
this.layerContainerDiv.style.top = (originPx.y - newPx.y) + "px";
this.layerContainerDiv.style.left = Math.round(originPx.x - newPx.x) + "px";
this.layerContainerDiv.style.top = Math.round(originPx.y - newPx.y) + "px";
}
},
@@ -1963,7 +1963,7 @@ OpenLayers.Map = OpenLayers.Class({
//
/**
* APIMethod: getLonLatFromViewPortPx
* Method: getLonLatFromViewPortPx
*
* Parameters:
* viewPortPx - {<OpenLayers.Pixel>}
@@ -2022,17 +2022,23 @@ OpenLayers.Map = OpenLayers.Class({
/**
* APIMethod: getPixelFromLonLat
* Returns a pixel location given a map location. The map location is
* translated to an integer pixel location (in viewport pixel
* coordinates) by the current base layer.
*
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
* lonlat - {<OpenLayers.LonLat>} A map location.
*
* Returns:
* {<OpenLayers.Pixel>} An OpenLayers.Pixel corresponding to the
* <OpenLayers.LonLat> translated into view port
* pixels by the current base layer.
* <OpenLayers.LonLat> translated into view port pixels by the current
* base layer.
*/
getPixelFromLonLat: function (lonlat) {
return this.getViewPortPxFromLonLat(lonlat);
var px = this.getViewPortPxFromLonLat(lonlat);
px.x = Math.round(px.x);
px.y = Math.round(px.y);
return px;
},
@@ -2089,7 +2095,7 @@ OpenLayers.Map = OpenLayers.Class({
//
/**
* APIMethod: getLonLatFromLayerPx
* Method: getLonLatFromLayerPx
*
* Parameters:
* px - {<OpenLayers.Pixel>}
@@ -2116,7 +2122,7 @@ OpenLayers.Map = OpenLayers.Class({
*/
getLayerPxFromLonLat: function (lonlat) {
//adjust for displacement of layerContainerDiv
var px = this.getViewPortPxFromLonLat(lonlat);
var px = this.getPixelFromLonLat(lonlat);
return this.getLayerPxFromViewPortPx(px);
},

View File

@@ -122,7 +122,7 @@ OpenLayers.Rule = OpenLayers.Class({
* feature - {<OpenLayers.Feature>} feature to apply the rule to.
*
* Returns:
* {boolean} true if the rule applies, false if it does not.
* {Boolean} true if the rule applies, false if it does not.
* This rule is the default rule and always returns true.
*/
evaluate: function(feature) {

View File

@@ -48,7 +48,7 @@ OpenLayers.Style = OpenLayers.Class({
/**
* Property: rules
* Array({<OpenLayers.Rule>})
* {Array(<OpenLayers.Rule>)}
*/
rules: null,

View File

@@ -22,8 +22,8 @@ OpenLayers.StyleMap = OpenLayers.Class({
/**
* Property: extendDefault
* {Boolean} if true, every render intent will extend the symbolizers
* specified for the "default" intent. Otherwise, every rendering intent
* is treated as a completely independent symbolizer.
* specified for the "default" intent at rendering time. Otherwise, every
* rendering intent will be treated as a completely independent style.
*/
extendDefault: true,
@@ -33,7 +33,9 @@ OpenLayers.StyleMap = OpenLayers.Class({
* Parameters:
* style - {Object} Optional. Either a style hash, or a style object, or
* a hash of style objects (style hashes) keyed by rendering
* intent
* intent. If just one style hash or style object is passed,
* this will be used for all known render intents (default,
* select, temporary)
* options - {Object} optional hash of additional options for this
* instance
*/
@@ -52,6 +54,8 @@ OpenLayers.StyleMap = OpenLayers.Class({
if(style instanceof OpenLayers.Style) {
// user passed a style object
this.styles["default"] = style;
this.styles["select"] = style;
this.styles["temporary"] = style;
} else if(typeof style == "object") {
for(var key in style) {
if(style[key] instanceof OpenLayers.Style) {
@@ -63,6 +67,8 @@ OpenLayers.StyleMap = OpenLayers.Class({
} else {
// user passed a style hash (i.e. symbolizer)
this.styles["default"] = new OpenLayers.Style(style);
this.styles["select"] = new OpenLayers.Style(style);
this.styles["temporary"] = new OpenLayers.Style(style);
break;
}
}
@@ -128,11 +134,14 @@ OpenLayers.StyleMap = OpenLayers.Class({
addUniqueValueRules: function(renderIntent, property, symbolizers) {
var rules = [];
for (var value in symbolizers) {
rules.push(new OpenLayers.Rule.Comparison({
type: OpenLayers.Rule.Comparison.EQUAL_TO,
property: property,
value: value,
symbolizer: symbolizers[value]}));
rules.push(new OpenLayers.Rule({
symbolizer: symbolizers[value],
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: property,
value: value
})
}));
}
this.styles[renderIntent].addRules(rules);
},