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
+22 -12
View File
@@ -69,7 +69,7 @@ Group: OpenLayers {
File: Control (no auto-title, OpenLayers/Control.js) File: Control (no auto-title, OpenLayers/Control.js)
File: ArgParser (no auto-title, OpenLayers/Control/ArgParser.js) File: ArgParser (no auto-title, OpenLayers/Control/ArgParser.js)
File: Attribution (no auto-title, OpenLayers/Control/Attribution.js) File: Attribution (no auto-title, OpenLayers/Control/Attribution.js)
File: Control.Button (no auto-title, OpenLayers/Control/Button.js) File: Button (no auto-title, OpenLayers/Control/Button.js)
File: DragFeature (no auto-title, OpenLayers/Control/DragFeature.js) File: DragFeature (no auto-title, OpenLayers/Control/DragFeature.js)
File: DragPan (no auto-title, OpenLayers/Control/DragPan.js) File: DragPan (no auto-title, OpenLayers/Control/DragPan.js)
File: DrawFeature (no auto-title, OpenLayers/Control/DrawFeature.js) File: DrawFeature (no auto-title, OpenLayers/Control/DrawFeature.js)
@@ -104,6 +104,14 @@ Group: OpenLayers {
File: WFS (no auto-title, OpenLayers/Feature/WFS.js) File: WFS (no auto-title, OpenLayers/Feature/WFS.js)
} # Group: Feature } # Group: Feature
Group: Filter {
File: Filter (no auto-title, OpenLayers/Filter.js)
File: Comparison (no auto-title, OpenLayers/Filter/Comparison.js)
File: FeatureId (no auto-title, OpenLayers/Filter/FeatureId.js)
File: Logical (no auto-title, OpenLayers/Filter/Logical.js)
} # Group: Filter
Group: Format { Group: Format {
File: Format (no auto-title, OpenLayers/Format.js) File: Format (no auto-title, OpenLayers/Format.js)
@@ -113,10 +121,18 @@ Group: OpenLayers {
File: JSON (no auto-title, OpenLayers/Format/JSON.js) File: JSON (no auto-title, OpenLayers/Format/JSON.js)
File: KML (no auto-title, OpenLayers/Format/KML.js) File: KML (no auto-title, OpenLayers/Format/KML.js)
File: OSM (no auto-title, OpenLayers/Format/OSM.js) File: OSM (no auto-title, OpenLayers/Format/OSM.js)
File: SLD (no auto-title, OpenLayers/Format/SLD.js)
Group: SLD {
File: SLD (no auto-title, OpenLayers/Format/SLD.js)
File: v1 (no auto-title, OpenLayers/Format/SLD/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/SLD/v1_0_0.js)
} # Group: SLD
File: Text (no auto-title, OpenLayers/Format/Text.js) File: Text (no auto-title, OpenLayers/Format/Text.js)
File: WFS (no auto-title, OpenLayers/Format/WFS.js) File: WFS (no auto-title, OpenLayers/Format/WFS.js)
File: WKT (no auto-title, OpenLayers/Format/WKT.js) File: WKT (no auto-title, OpenLayers/Format/WKT.js)
File: XML (no auto-title, OpenLayers/Format/XML.js)
Group: WMC { Group: WMC {
@@ -126,7 +142,6 @@ Group: OpenLayers {
File: v1_1_0 (no auto-title, OpenLayers/Format/WMC/v1_1_0.js) File: v1_1_0 (no auto-title, OpenLayers/Format/WMC/v1_1_0.js)
} # Group: WMC } # Group: WMC
File: XML (no auto-title, OpenLayers/Format/XML.js)
} # Group: Format } # Group: Format
Group: Geometry { Group: Geometry {
@@ -142,7 +157,6 @@ Group: OpenLayers {
File: Point (no auto-title, OpenLayers/Geometry/Point.js) File: Point (no auto-title, OpenLayers/Geometry/Point.js)
File: Polygon (no auto-title, OpenLayers/Geometry/Polygon.js) File: Polygon (no auto-title, OpenLayers/Geometry/Polygon.js)
File: Rectangle (no auto-title, OpenLayers/Geometry/Rectangle.js) File: Rectangle (no auto-title, OpenLayers/Geometry/Rectangle.js)
File: Surface (no auto-title, OpenLayers/Geometry/Surface.js)
} # Group: Geometry } # Group: Geometry
Group: Handler { Group: Handler {
@@ -166,6 +180,7 @@ Group: OpenLayers {
Group: Lang { Group: Lang {
File: Lang (no auto-title, OpenLayers/Lang.js) File: Lang (no auto-title, OpenLayers/Lang.js)
File: Lang["cs-CZ"] (OpenLayers/Lang/cs-CZ.js)
File: Lang["de"] (no auto-title, OpenLayers/Lang/de.js) File: Lang["de"] (no auto-title, OpenLayers/Lang/de.js)
File: Lang["en"] (no auto-title, OpenLayers/Lang/en.js) File: Lang["en"] (no auto-title, OpenLayers/Lang/en.js)
File: Lang["en-CA"] (no auto-title, OpenLayers/Lang/en-CA.js) File: Lang["en-CA"] (no auto-title, OpenLayers/Lang/en-CA.js)
@@ -217,6 +232,8 @@ Group: OpenLayers {
File: Popup (no auto-title, OpenLayers/Popup.js) File: Popup (no auto-title, OpenLayers/Popup.js)
File: Anchored (no auto-title, OpenLayers/Popup/Anchored.js) File: Anchored (no auto-title, OpenLayers/Popup/Anchored.js)
File: AnchoredBubble (no auto-title, OpenLayers/Popup/AnchoredBubble.js) File: AnchoredBubble (no auto-title, OpenLayers/Popup/AnchoredBubble.js)
File: Framed (OpenLayers/Popup/Framed.js)
File: FramedCloud (OpenLayers/Popup/FramedCloud.js)
} # Group: Popup } # Group: Popup
File: Projection (no auto-title, OpenLayers/Projection.js) File: Projection (no auto-title, OpenLayers/Projection.js)
@@ -229,14 +246,7 @@ Group: OpenLayers {
File: VML (no auto-title, OpenLayers/Renderer/VML.js) File: VML (no auto-title, OpenLayers/Renderer/VML.js)
} # Group: Renderer } # Group: Renderer
Group: Rule { File: Rule (no auto-title, OpenLayers/Rule.js)
File: Rule (no auto-title, OpenLayers/Rule.js)
File: Comparison (no auto-title, OpenLayers/Rule/Comparison.js)
File: FeatureId (no auto-title, OpenLayers/Rule/FeatureId.js)
File: Logical (no auto-title, OpenLayers/Rule/Logical.js)
} # Group: Rule
File: Style (no auto-title, OpenLayers/Style.js) File: Style (no auto-title, OpenLayers/Style.js)
File: StyleMap (no auto-title, OpenLayers/StyleMap.js) File: StyleMap (no auto-title, OpenLayers/StyleMap.js)
+22 -12
View File
@@ -69,7 +69,7 @@ Group: OpenLayers {
File: Control (no auto-title, OpenLayers/Control.js) File: Control (no auto-title, OpenLayers/Control.js)
File: ArgParser (no auto-title, OpenLayers/Control/ArgParser.js) File: ArgParser (no auto-title, OpenLayers/Control/ArgParser.js)
File: Attribution (no auto-title, OpenLayers/Control/Attribution.js) File: Attribution (no auto-title, OpenLayers/Control/Attribution.js)
File: Control.Button (no auto-title, OpenLayers/Control/Button.js) File: Button (no auto-title, OpenLayers/Control/Button.js)
File: DragFeature (no auto-title, OpenLayers/Control/DragFeature.js) File: DragFeature (no auto-title, OpenLayers/Control/DragFeature.js)
File: DragPan (no auto-title, OpenLayers/Control/DragPan.js) File: DragPan (no auto-title, OpenLayers/Control/DragPan.js)
File: DrawFeature (no auto-title, OpenLayers/Control/DrawFeature.js) File: DrawFeature (no auto-title, OpenLayers/Control/DrawFeature.js)
@@ -104,6 +104,14 @@ Group: OpenLayers {
File: WFS (no auto-title, OpenLayers/Feature/WFS.js) File: WFS (no auto-title, OpenLayers/Feature/WFS.js)
} # Group: Feature } # Group: Feature
Group: Filter {
File: Filter (no auto-title, OpenLayers/Filter.js)
File: Comparison (no auto-title, OpenLayers/Filter/Comparison.js)
File: FeatureId (no auto-title, OpenLayers/Filter/FeatureId.js)
File: Logical (no auto-title, OpenLayers/Filter/Logical.js)
} # Group: Filter
Group: Format { Group: Format {
File: Format (no auto-title, OpenLayers/Format.js) File: Format (no auto-title, OpenLayers/Format.js)
@@ -113,10 +121,18 @@ Group: OpenLayers {
File: JSON (no auto-title, OpenLayers/Format/JSON.js) File: JSON (no auto-title, OpenLayers/Format/JSON.js)
File: KML (no auto-title, OpenLayers/Format/KML.js) File: KML (no auto-title, OpenLayers/Format/KML.js)
File: OSM (no auto-title, OpenLayers/Format/OSM.js) File: OSM (no auto-title, OpenLayers/Format/OSM.js)
File: SLD (no auto-title, OpenLayers/Format/SLD.js)
Group: SLD {
File: SLD (no auto-title, OpenLayers/Format/SLD.js)
File: v1 (no auto-title, OpenLayers/Format/SLD/v1.js)
File: v1_0_0 (no auto-title, OpenLayers/Format/SLD/v1_0_0.js)
} # Group: SLD
File: Text (no auto-title, OpenLayers/Format/Text.js) File: Text (no auto-title, OpenLayers/Format/Text.js)
File: WFS (no auto-title, OpenLayers/Format/WFS.js) File: WFS (no auto-title, OpenLayers/Format/WFS.js)
File: WKT (no auto-title, OpenLayers/Format/WKT.js) File: WKT (no auto-title, OpenLayers/Format/WKT.js)
File: XML (no auto-title, OpenLayers/Format/XML.js)
Group: WMC { Group: WMC {
@@ -126,7 +142,6 @@ Group: OpenLayers {
File: v1_1_0 (no auto-title, OpenLayers/Format/WMC/v1_1_0.js) File: v1_1_0 (no auto-title, OpenLayers/Format/WMC/v1_1_0.js)
} # Group: WMC } # Group: WMC
File: XML (no auto-title, OpenLayers/Format/XML.js)
} # Group: Format } # Group: Format
Group: Geometry { Group: Geometry {
@@ -142,7 +157,6 @@ Group: OpenLayers {
File: Point (no auto-title, OpenLayers/Geometry/Point.js) File: Point (no auto-title, OpenLayers/Geometry/Point.js)
File: Polygon (no auto-title, OpenLayers/Geometry/Polygon.js) File: Polygon (no auto-title, OpenLayers/Geometry/Polygon.js)
File: Rectangle (no auto-title, OpenLayers/Geometry/Rectangle.js) File: Rectangle (no auto-title, OpenLayers/Geometry/Rectangle.js)
File: Surface (no auto-title, OpenLayers/Geometry/Surface.js)
} # Group: Geometry } # Group: Geometry
Group: Handler { Group: Handler {
@@ -166,6 +180,7 @@ Group: OpenLayers {
Group: Lang { Group: Lang {
File: Lang (no auto-title, OpenLayers/Lang.js) File: Lang (no auto-title, OpenLayers/Lang.js)
File: Lang["cs-CZ"] (OpenLayers/Lang/cs-CZ.js)
File: Lang["de"] (no auto-title, OpenLayers/Lang/de.js) File: Lang["de"] (no auto-title, OpenLayers/Lang/de.js)
File: Lang["en"] (no auto-title, OpenLayers/Lang/en.js) File: Lang["en"] (no auto-title, OpenLayers/Lang/en.js)
File: Lang["en-CA"] (no auto-title, OpenLayers/Lang/en-CA.js) File: Lang["en-CA"] (no auto-title, OpenLayers/Lang/en-CA.js)
@@ -217,6 +232,8 @@ Group: OpenLayers {
File: Popup (no auto-title, OpenLayers/Popup.js) File: Popup (no auto-title, OpenLayers/Popup.js)
File: Anchored (no auto-title, OpenLayers/Popup/Anchored.js) File: Anchored (no auto-title, OpenLayers/Popup/Anchored.js)
File: AnchoredBubble (no auto-title, OpenLayers/Popup/AnchoredBubble.js) File: AnchoredBubble (no auto-title, OpenLayers/Popup/AnchoredBubble.js)
File: Framed (OpenLayers/Popup/Framed.js)
File: FramedCloud (OpenLayers/Popup/FramedCloud.js)
} # Group: Popup } # Group: Popup
File: Projection (no auto-title, OpenLayers/Projection.js) File: Projection (no auto-title, OpenLayers/Projection.js)
@@ -229,14 +246,7 @@ Group: OpenLayers {
File: VML (no auto-title, OpenLayers/Renderer/VML.js) File: VML (no auto-title, OpenLayers/Renderer/VML.js)
} # Group: Renderer } # Group: Renderer
Group: Rule { File: Rule (no auto-title, OpenLayers/Rule.js)
File: Rule (no auto-title, OpenLayers/Rule.js)
File: Comparison (no auto-title, OpenLayers/Rule/Comparison.js)
File: FeatureId (no auto-title, OpenLayers/Rule/FeatureId.js)
File: Logical (no auto-title, OpenLayers/Rule/Logical.js)
} # Group: Rule
File: Style (no auto-title, OpenLayers/Style.js) File: Style (no auto-title, OpenLayers/Style.js)
File: StyleMap (no auto-title, OpenLayers/StyleMap.js) File: StyleMap (no auto-title, OpenLayers/StyleMap.js)
+4 -7
View File
@@ -49,23 +49,20 @@
} }
function init(){ function init(){
var options = { var options = {
projection: "EPSG:26912", maxExtent: new OpenLayers.Bounds(-110.994, 45.885, -110.950, 45.929),
units: 'm', maxResolution: "auto"
maxExtent: new OpenLayers.Bounds(455402, 4967657, 473295, 4984095),
maxResolution: 'auto',
maxZoomLevel: 8
}; };
map = new OpenLayers.Map('map', options); map = new OpenLayers.Map('map', options);
var drg = new OpenLayers.Layer.WMS("Topo Maps", var drg = new OpenLayers.Layer.WMS("Topo Maps",
"http://terraservice.net/ogcmap.ashx", "http://terraservice.net/ogcmap.ashx",
{layers: "DRG"}); {layers: "DRG"});
shade = new OpenLayers.Layer.WMS("Shaded Relief", shade = new OpenLayers.Layer.WMS("Shaded Relief",
"http://ims.cr.usgs.gov/servlet19/com.esri.wms.Esrimap/USGS_EDC_Elev_NED_3", "http://gisdata.usgs.gov/wmsconnector/com.esri.wms.Esrimap?ServiceName=USGS_EDC_Elev_NED_3",
{layers: "HR-NED.IMAGE", reaspect: "false", transparent: 'true'}, {layers: "HR-NED.IMAGE", reaspect: "false", transparent: 'true'},
{isBaseLayer: false, opacity: 0.3}); {isBaseLayer: false, opacity: 0.3});
map.addLayers([drg, shade]); map.addLayers([drg, shade]);
map.addControl(new OpenLayers.Control.LayerSwitcher()); map.addControl(new OpenLayers.Control.LayerSwitcher());
map.setCenter(new OpenLayers.LonLat(464348.5,4975876), 1); map.zoomToMaxExtent();
} }
</script> </script>
</head> </head>
+28 -36
View File
@@ -17,16 +17,14 @@
* OpenLayers custom string, number and function functions are described here. * OpenLayers custom string, number and function functions are described here.
*/ */
/********************* /**
* * * Namespace: OpenLayers.String
* STRING * * Contains convenience functions for string manipulation.
* * */
*********************/
OpenLayers.String = { OpenLayers.String = {
/** /**
* APIFunction: OpenLayers.String.startsWith * APIFunction: startsWith
* Test whether a string starts with another string. * Test whether a string starts with another string.
* *
* Parameters: * Parameters:
@@ -41,7 +39,7 @@ OpenLayers.String = {
}, },
/** /**
* APIFunction: OpenLayers.String.contains * APIFunction: contains
* Test whether a string contains another string. * Test whether a string contains another string.
* *
* Parameters: * Parameters:
@@ -56,7 +54,7 @@ OpenLayers.String = {
}, },
/** /**
* APIFunction: OpenLayers.String.trim * APIFunction: trim
* Removes leading and trailing whitespace characters from a string. * Removes leading and trailing whitespace characters from a string.
* *
* Parameters: * Parameters:
@@ -72,7 +70,7 @@ OpenLayers.String = {
}, },
/** /**
* APIFunction: OpenLayers.String.camelize * APIFunction: camelize
* Camel-case a hyphenated string. * Camel-case a hyphenated string.
* Ex. "chicken-head" becomes "chickenHead", and * Ex. "chicken-head" becomes "chickenHead", and
* "-chicken-head" becomes "ChickenHead". * "-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 * Given a string with tokens in the form ${token}, return a string
* with tokens replaced with properties from the given context * with tokens replaced with properties from the given context
* object. Represent a literal "${" by doubling it, e.g. "${${". * object. Represent a literal "${" by doubling it, e.g. "${${".
@@ -209,28 +207,26 @@ if (!String.prototype.camelize) {
}; };
} }
/********************* /**
* * * Namespace: OpenLayers.Number
* NUMBER * * Contains convenience functions for manipulating numbers.
* * */
*********************/
OpenLayers.Number = { OpenLayers.Number = {
/** /**
* Property: OpenLayers.Number.decimalSeparator * Property: decimalSeparator
* Decimal separator to use when formatting numbers. * Decimal separator to use when formatting numbers.
*/ */
decimalSeparator: ".", decimalSeparator: ".",
/** /**
* Property: OpenLayers.Number.thousandsSeparator * Property: thousandsSeparator
* Thousands separator to use when formatting numbers. * Thousands separator to use when formatting numbers.
*/ */
thousandsSeparator: ",", thousandsSeparator: ",",
/** /**
* APIFunction: OpenLayers.Number.limitSigDigs * APIFunction: limitSigDigs
* Limit the number of significant digits on a float. * Limit the number of significant digits on a float.
* *
* Parameters: * Parameters:
@@ -250,7 +246,7 @@ OpenLayers.Number = {
}, },
/** /**
* APIFunction: OpenLayers.Number.format * APIFunction: format
* Formats a number for output. * Formats a number for output.
* *
* Parameters: * Parameters:
@@ -324,15 +320,13 @@ if (!Number.prototype.limitSigDigs) {
}; };
} }
/********************* /**
* * * Namespace: OpenLayers.Function
* FUNCTION * * Contains convenience functions for function manipulation.
* * */
*********************/
OpenLayers.Function = { OpenLayers.Function = {
/** /**
* APIFunction: OpenLayers.Function.bind * APIFunction: bind
* Bind a function to an object. Method to easily create closures with * Bind a function to an object. Method to easily create closures with
* 'this' altered. * '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 * Bind a function to an object, and configure it to receive the event
* object as first parameter when called. * object as first parameter when called.
* *
@@ -416,16 +410,14 @@ if (!Function.prototype.bindAsEventListener) {
}; };
} }
/********************* /**
* * * Namespace: OpenLayers.Array
* ARRAY * * Contains convenience functions for array manipulation.
* * */
*********************/
OpenLayers.Array = { OpenLayers.Array = {
/** /**
* APIMethod: OpenLayers.Array.filter * APIMethod: filter
* Filter an array. Provides the functionality of the * Filter an array. Provides the functionality of the
* Array.prototype.filter extension to the ECMA-262 standard. Where * Array.prototype.filter extension to the ECMA-262 standard. Where
* available, Array.prototype.filter will be used. * available, Array.prototype.filter will be used.
+7 -7
View File
@@ -18,25 +18,25 @@ OpenLayers.Bounds = OpenLayers.Class({
/** /**
* Property: left * Property: left
* {Number} * {Number} Minimum horizontal coordinate.
*/ */
left: null, left: null,
/** /**
* Property: bottom * Property: bottom
* {Number} * {Number} Minimum vertical coordinate.
*/ */
bottom: null, bottom: null,
/** /**
* Property: right * Property: right
* {Number} * {Number} Maximum horizontal coordinate.
*/ */
right: null, right: null,
/** /**
* Property: top * Property: top
* {Number} * {Number} Maximum vertical coordinate.
*/ */
top: null, top: null,
@@ -349,7 +349,7 @@ OpenLayers.Bounds = OpenLayers.Class({
* *
* Parameters: * Parameters:
* bounds - {<OpenLayers.Bounds>} * 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. * is true.
* *
* Returns: * Returns:
@@ -384,10 +384,10 @@ OpenLayers.Bounds = OpenLayers.Class({
* APIMethod: containsBounds * APIMethod: containsBounds
* *
* bounds - {<OpenLayers.Bounds>} * 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 this bounds. If false, the entire passed-in bounds must be
* within. Default is false * 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. * true.
* *
* Returns: * Returns:
+1 -1
View File
@@ -103,7 +103,7 @@ OpenLayers.Control = OpenLayers.Class({
/** /**
* Property: active * Property: active
* {boolean} null * {Boolean} The control is active.
*/ */
active: null, active: null,
+2 -2
View File
@@ -30,8 +30,8 @@ OpenLayers.Control.DragPan = OpenLayers.Class(OpenLayers.Control, {
/** /**
* Method: draw * Method: draw
* Creates a Drag handler, using <OpenLayers.Control.PanMap.panMap> and * Creates a Drag handler, using <panMap> and
* <OpenLayers.Control.PanMap.panMapDone> as callbacks. * <panMapDone> as callbacks.
*/ */
draw: function() { draw: function() {
this.handler = new OpenLayers.Handler.Drag(this, this.handler = new OpenLayers.Handler.Drag(this,
+2 -2
View File
@@ -72,7 +72,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
/** /**
* Property: selectControl * Property: selectControl
* {<OpenLayers.Control.Select>} * {<OpenLayers.Control.SelectFeature>}
*/ */
selectControl: null, selectControl: null,
@@ -99,7 +99,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
/** /**
* APIProperty: virtualStyle * APIProperty: virtualStyle
* {<OpenLayers.Feature.Vector.Style>} * {Object} A symbolizer to be used for virtual vertices.
*/ */
virtualStyle: null, virtualStyle: null,
+3
View File
@@ -10,6 +10,9 @@
/** /**
* Class: OpenLayers.Control.NavToolbar * Class: OpenLayers.Control.NavToolbar
*
* Inherits from:
* - <OpenLayers.Control.Panel>
*/ */
OpenLayers.Control.NavToolbar = OpenLayers.Class(OpenLayers.Control.Panel, { OpenLayers.Control.NavToolbar = OpenLayers.Class(OpenLayers.Control.Panel, {
+3 -3
View File
@@ -16,7 +16,7 @@
* when there are no states to restore. * when there are no states to restore.
* *
* Inherits from: * Inherits from:
* - <OpenLayers.Control.Control> * - <OpenLayers.Control>
*/ */
OpenLayers.Control.NavigationHistory = OpenLayers.Class(OpenLayers.Control, { OpenLayers.Control.NavigationHistory = OpenLayers.Class(OpenLayers.Control, {
@@ -32,7 +32,7 @@ OpenLayers.Control.NavigationHistory = OpenLayers.Class(OpenLayers.Control, {
/** /**
* APIProperty: previous * 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. * the previous state managed by this control.
*/ */
previous: null, previous: null,
@@ -46,7 +46,7 @@ OpenLayers.Control.NavigationHistory = OpenLayers.Class(OpenLayers.Control, {
/** /**
* APIProperty: next * 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. * the next state managed by this control.
*/ */
next: null, next: null,
+1 -1
View File
@@ -8,7 +8,7 @@
*/ */
/** /**
* Class: OpenLayers.PanZoom * Class: OpenLayers.Control.PanZoom
* *
* Inherits from: * Inherits from:
* - <OpenLayers.Control> * - <OpenLayers.Control>
+1 -2
View File
@@ -12,7 +12,6 @@
* *
* Inherits from: * Inherits from:
* - <OpenLayers.Control.PanZoom> * - <OpenLayers.Control.PanZoom>
* - <OpenLayers.Control>
*/ */
OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, { OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
@@ -56,7 +55,7 @@ OpenLayers.Control.PanZoomBar = OpenLayers.Class(OpenLayers.Control.PanZoom, {
zoomWorldIcon: false, zoomWorldIcon: false,
/** /**
* Constructor: <OpenLayers.Control.PanZoomBar> * Constructor: OpenLayers.Control.PanZoomBar
*/ */
initialize: function() { initialize: function() {
OpenLayers.Control.PanZoom.prototype.initialize.apply(this, arguments); OpenLayers.Control.PanZoom.prototype.initialize.apply(this, arguments);
+1 -1
View File
@@ -15,7 +15,7 @@
OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, { OpenLayers.Control.Panel = OpenLayers.Class(OpenLayers.Control, {
/** /**
* Property: controls * Property: controls
* Array({<OpenLayers.Control>}) * {Array(<OpenLayers.Control>)}
*/ */
controls: null, controls: null,
+3 -1
View File
@@ -532,7 +532,9 @@ OpenLayers.Events = OpenLayers.Class({
*/ */
register: function (type, obj, func) { 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) { if (obj == null) {
obj = this.object; obj = this.object;
} }
+4
View File
@@ -161,6 +161,10 @@ OpenLayers.Feature = OpenLayers.Class({
* *
* If no 'lonlat' is set, returns null. * If no 'lonlat' is set, returns null.
* If no this.marker has been created, no anchor is sent. * 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 * Note - this.popup is set to return value
* *
+1 -4
View File
@@ -68,9 +68,6 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
* Creates a comparison rule. * Creates a comparison rule.
* *
* Parameters: * Parameters:
* params - {Object} Hash of parameters for this rule:
* -
* - value:
* options - {Object} An optional object with properties to set on the * options - {Object} An optional object with properties to set on the
* rule * rule
* *
@@ -204,7 +201,7 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
* value - {String} or {Number}, same as property * value - {String} or {Number}, same as property
* *
* Returns: * Returns:
* {boolean} * {Boolean}
*/ */
binaryCompare: function(context, property, value) { binaryCompare: function(context, property, value) {
switch (this.type) { switch (this.type) {
+2 -2
View File
@@ -19,7 +19,7 @@ OpenLayers.Filter.FeatureId = OpenLayers.Class(OpenLayers.Filter, {
/** /**
* APIProperty: fids * 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. * To be passed inside the params object.
*/ */
fids: null, fids: null,
@@ -50,7 +50,7 @@ OpenLayers.Filter.FeatureId = OpenLayers.Class(OpenLayers.Filter, {
* for plain features against the id. * for plain features against the id.
* *
* Returns: * 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) { evaluate: function(feature) {
for (var i=0; i<this.fids.length; i++) { for (var i=0; i<this.fids.length; i++) {
+1 -1
View File
@@ -267,7 +267,7 @@ OpenLayers.Format.GeoRSS = OpenLayers.Class(OpenLayers.Format.XML, {
* Accept Feature Collection, and return a string. * Accept Feature Collection, and return a string.
* *
* Parameters: * 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) { write: function(features) {
var georss; var georss;
+1 -1
View File
@@ -283,7 +283,7 @@ OpenLayers.Format.OSM = OpenLayers.Class(OpenLayers.Format.XML, {
* in tools like JOSM. * in tools like JOSM.
* *
* Parameters: * Parameters:
* features - Array({<OpenLayers.Feature.Vector>}) * features - {Array(<OpenLayers.Feature.Vector>)}
*/ */
write: function(features) { write: function(features) {
if (!(features instanceof Array)) { if (!(features instanceof Array)) {
+3 -3
View File
@@ -5,9 +5,9 @@
/** /**
* @requires OpenLayers/Format/XML.js * @requires OpenLayers/Format/XML.js
* @requires OpenLayers/Style.js * @requires OpenLayers/Style.js
* @requires OpenLayers/Rule/FeatureId.js * @requires OpenLayers/Filter/FeatureId.js
* @requires OpenLayers/Rule/Logical.js * @requires OpenLayers/Filter/Logical.js
* @requires OpenLayers/Rule/Comparison.js * @requires OpenLayers/Filter/Comparison.js
*/ */
/** /**
+1 -1
View File
@@ -31,7 +31,7 @@ OpenLayers.Geometry.MultiPoint = OpenLayers.Class(
* Create a new MultiPoint Geometry * Create a new MultiPoint Geometry
* *
* Parameters: * Parameters:
* components - Array({<OpenLayers.Geometry.Point>}) * components - {Array(<OpenLayers.Geometry.Point>)}
* *
* Returns: * Returns:
* {<OpenLayers.Geometry.MultiPoint>} * {<OpenLayers.Geometry.MultiPoint>}
+1 -1
View File
@@ -33,7 +33,7 @@ OpenLayers.Geometry.Polygon = OpenLayers.Class(
* *
* *
* Parameters: * Parameters:
* components - Array({<OpenLayers.Geometry.LinearRing>}) * components - {Array(<OpenLayers.Geometry.LinearRing>)}
*/ */
initialize: function(components) { initialize: function(components) {
OpenLayers.Geometry.Collection.prototype.initialize.apply(this, OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
-7
View File
@@ -6,15 +6,8 @@
* @requires OpenLayers/Geometry.js * @requires OpenLayers/Geometry.js
*/ */
/**
* Class: OpenLayers.Geometry.Surface
*/
OpenLayers.Geometry.Surface = OpenLayers.Class(OpenLayers.Geometry, { OpenLayers.Geometry.Surface = OpenLayers.Class(OpenLayers.Geometry, {
/**
* Constructor: OpenLayers.Geometry.Surface
*
*/
initialize: function() { initialize: function() {
OpenLayers.Geometry.prototype.initialize.apply(this, arguments); OpenLayers.Geometry.prototype.initialize.apply(this, arguments);
}, },
+1 -1
View File
@@ -79,7 +79,7 @@ OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
/** /**
* Property: timerId * 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, timerId: null,
+4 -2
View File
@@ -997,6 +997,8 @@ OpenLayers.Layer = OpenLayers.Class({
/** /**
* APIMethod: getViewPortPxFromLonLat * APIMethod: getViewPortPxFromLonLat
* Returns a pixel location given a map location. This method will return
* fractional pixel values.
* *
* Parameters: * Parameters:
* lonlat - {<OpenLayers.LonLat>} * lonlat - {<OpenLayers.LonLat>}
@@ -1011,8 +1013,8 @@ OpenLayers.Layer = OpenLayers.Class({
var resolution = this.map.getResolution(); var resolution = this.map.getResolution();
var extent = this.map.getExtent(); var extent = this.map.getExtent();
px = new OpenLayers.Pixel( px = new OpenLayers.Pixel(
Math.round(1/resolution * (lonlat.lon - extent.left)), (1/resolution * (lonlat.lon - extent.left)),
Math.round(1/resolution * (extent.top - lonlat.lat)) (1/resolution * (extent.top - lonlat.lat))
); );
} }
return px; return px;
+1 -1
View File
@@ -26,7 +26,7 @@ OpenLayers.Layer.GeoRSS = OpenLayers.Class(OpenLayers.Layer.Markers, {
/** /**
* Property: features * Property: features
* Array({<OpenLayers.Feature>}) * {Array(<OpenLayers.Feature>)}
*/ */
features: null, features: null,
+2 -2
View File
@@ -9,8 +9,8 @@
/** /**
* Class: OpenLayers.Layer.MapServer.Untiled * Class: OpenLayers.Layer.MapServer.Untiled
* Deprecated, to be removed in 3.0 - instead use OpenLayers.Layer.MapServer and * *Deprecated*. To be removed in 3.0. Instead use OpenLayers.Layer.MapServer
* pass the option 'singleTile' as true. * and pass the option 'singleTile' as true.
* *
* Inherits from: * Inherits from:
* - <OpenLayers.Layer.MapServer> * - <OpenLayers.Layer.MapServer>
+1 -1
View File
@@ -23,7 +23,7 @@ OpenLayers.Layer.Markers = OpenLayers.Class(OpenLayers.Layer, {
/** /**
* Property: markers * Property: markers
* Array({<OpenLayers.Marker>}) internal marker list * {Array(<OpenLayers.Marker>)} internal marker list
*/ */
markers: null, markers: null,
+2 -2
View File
@@ -13,8 +13,8 @@
* option. See Ticket #953 for more details. * option. See Ticket #953 for more details.
* *
* Inherits from: * Inherits from:
* - <OpenLayers.Layers.EventPane> * - <OpenLayers.Layer.EventPane>
* - <OpenLayers.Layers.FixedZoomLevels> * - <OpenLayers.Layer.FixedZoomLevels>
*/ */
OpenLayers.Layer.MultiMap = OpenLayers.Class( OpenLayers.Layer.MultiMap = OpenLayers.Class(
OpenLayers.Layer.EventPane, OpenLayers.Layer.FixedZoomLevels, { OpenLayers.Layer.EventPane, OpenLayers.Layer.FixedZoomLevels, {
+1 -1
View File
@@ -50,7 +50,7 @@ OpenLayers.Layer.Text = OpenLayers.Class(OpenLayers.Layer.Markers, {
/** /**
* Property: features * Property: features
* Array({<OpenLayers.Feature>}) * {Array(<OpenLayers.Feature>)}
*/ */
features: null, features: null,
+3 -3
View File
@@ -87,13 +87,13 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
/** /**
* APIProperty: features * APIProperty: features
* Array({<OpenLayers.Feature.Vector>}) * {Array(<OpenLayers.Feature.Vector>)}
*/ */
features: null, features: null,
/** /**
* Property: selectedFeatures * Property: selectedFeatures
* Array({<OpenLayers.Feature.Vector>}) * {Array(<OpenLayers.Feature.Vector>)}
*/ */
selectedFeatures: null, selectedFeatures: null,
@@ -118,7 +118,7 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
/** /**
* Property: renderers * 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: * add support for additional renderers. This list is ordered:
* the first renderer which returns true for the 'supported()' * the first renderer which returns true for the 'supported()'
* method will be used, if not defined in the 'renderer' option. * method will be used, if not defined in the 'renderer' option.
+1 -1
View File
@@ -9,7 +9,7 @@
/** /**
* Class: OpenLayers.Layer.WMS.Untiled * 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. * pass the option 'singleTile' as true.
* *
* Inherits from: * Inherits from:
+16 -10
View File
@@ -820,7 +820,7 @@ OpenLayers.Map = OpenLayers.Class({
* APIMethod: addLayers * APIMethod: addLayers
* *
* Parameters: * Parameters:
* layers - Array({<OpenLayers.Layer>}) * layers - {Array(<OpenLayers.Layer>)}
*/ */
addLayers: function (layers) { addLayers: function (layers) {
for (var i = 0; i < layers.length; i++) { for (var i = 0; i < layers.length; i++) {
@@ -1593,8 +1593,8 @@ OpenLayers.Map = OpenLayers.Class({
var newPx = this.getViewPortPxFromLonLat(lonlat); var newPx = this.getViewPortPxFromLonLat(lonlat);
if ((originPx != null) && (newPx != null)) { if ((originPx != null) && (newPx != null)) {
this.layerContainerDiv.style.left = (originPx.x - newPx.x) + "px"; this.layerContainerDiv.style.left = Math.round(originPx.x - newPx.x) + "px";
this.layerContainerDiv.style.top = (originPx.y - newPx.y) + "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: * Parameters:
* viewPortPx - {<OpenLayers.Pixel>} * viewPortPx - {<OpenLayers.Pixel>}
@@ -2022,17 +2022,23 @@ OpenLayers.Map = OpenLayers.Class({
/** /**
* APIMethod: getPixelFromLonLat * 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: * Parameters:
* lonlat - {<OpenLayers.LonLat>} * lonlat - {<OpenLayers.LonLat>} A map location.
* *
* Returns: * Returns:
* {<OpenLayers.Pixel>} An OpenLayers.Pixel corresponding to the * {<OpenLayers.Pixel>} An OpenLayers.Pixel corresponding to the
* <OpenLayers.LonLat> translated into view port * <OpenLayers.LonLat> translated into view port pixels by the current
* pixels by the current base layer. * base layer.
*/ */
getPixelFromLonLat: function (lonlat) { 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: * Parameters:
* px - {<OpenLayers.Pixel>} * px - {<OpenLayers.Pixel>}
@@ -2116,7 +2122,7 @@ OpenLayers.Map = OpenLayers.Class({
*/ */
getLayerPxFromLonLat: function (lonlat) { getLayerPxFromLonLat: function (lonlat) {
//adjust for displacement of layerContainerDiv //adjust for displacement of layerContainerDiv
var px = this.getViewPortPxFromLonLat(lonlat); var px = this.getPixelFromLonLat(lonlat);
return this.getLayerPxFromViewPortPx(px); return this.getLayerPxFromViewPortPx(px);
}, },
+1 -1
View File
@@ -122,7 +122,7 @@ OpenLayers.Rule = OpenLayers.Class({
* feature - {<OpenLayers.Feature>} feature to apply the rule to. * feature - {<OpenLayers.Feature>} feature to apply the rule to.
* *
* Returns: * 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. * This rule is the default rule and always returns true.
*/ */
evaluate: function(feature) { evaluate: function(feature) {
+1 -1
View File
@@ -48,7 +48,7 @@ OpenLayers.Style = OpenLayers.Class({
/** /**
* Property: rules * Property: rules
* Array({<OpenLayers.Rule>}) * {Array(<OpenLayers.Rule>)}
*/ */
rules: null, rules: null,
+17 -8
View File
@@ -22,8 +22,8 @@ OpenLayers.StyleMap = OpenLayers.Class({
/** /**
* Property: extendDefault * Property: extendDefault
* {Boolean} if true, every render intent will extend the symbolizers * {Boolean} if true, every render intent will extend the symbolizers
* specified for the "default" intent. Otherwise, every rendering intent * specified for the "default" intent at rendering time. Otherwise, every
* is treated as a completely independent symbolizer. * rendering intent will be treated as a completely independent style.
*/ */
extendDefault: true, extendDefault: true,
@@ -33,7 +33,9 @@ OpenLayers.StyleMap = OpenLayers.Class({
* Parameters: * Parameters:
* style - {Object} Optional. Either a style hash, or a style object, or * style - {Object} Optional. Either a style hash, or a style object, or
* a hash of style objects (style hashes) keyed by rendering * 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 * options - {Object} optional hash of additional options for this
* instance * instance
*/ */
@@ -52,6 +54,8 @@ OpenLayers.StyleMap = OpenLayers.Class({
if(style instanceof OpenLayers.Style) { if(style instanceof OpenLayers.Style) {
// user passed a style object // user passed a style object
this.styles["default"] = style; this.styles["default"] = style;
this.styles["select"] = style;
this.styles["temporary"] = style;
} else if(typeof style == "object") { } else if(typeof style == "object") {
for(var key in style) { for(var key in style) {
if(style[key] instanceof OpenLayers.Style) { if(style[key] instanceof OpenLayers.Style) {
@@ -63,6 +67,8 @@ OpenLayers.StyleMap = OpenLayers.Class({
} else { } else {
// user passed a style hash (i.e. symbolizer) // user passed a style hash (i.e. symbolizer)
this.styles["default"] = new OpenLayers.Style(style); this.styles["default"] = new OpenLayers.Style(style);
this.styles["select"] = new OpenLayers.Style(style);
this.styles["temporary"] = new OpenLayers.Style(style);
break; break;
} }
} }
@@ -128,11 +134,14 @@ OpenLayers.StyleMap = OpenLayers.Class({
addUniqueValueRules: function(renderIntent, property, symbolizers) { addUniqueValueRules: function(renderIntent, property, symbolizers) {
var rules = []; var rules = [];
for (var value in symbolizers) { for (var value in symbolizers) {
rules.push(new OpenLayers.Rule.Comparison({ rules.push(new OpenLayers.Rule({
type: OpenLayers.Rule.Comparison.EQUAL_TO, symbolizer: symbolizers[value],
property: property, filter: new OpenLayers.Filter.Comparison({
value: value, type: OpenLayers.Filter.Comparison.EQUAL_TO,
symbolizer: symbolizers[value]})); property: property,
value: value
})
}));
} }
this.styles[renderIntent].addRules(rules); this.styles[renderIntent].addRules(rules);
}, },
+21
View File
@@ -0,0 +1,21 @@
<html>
<head>
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map;
// Ensure that we continue to work if silly Javascript frameworks
// extend object.
Object.prototype.foo = function() { }
function test_Events_Object_Extension(t) {
t.plan(1)
map = new OpenLayers.Map("map");
t.ok("Map created if object prototype is extended.");
}
</script>
</head>
<body>
<div id="map" style="width: 600px; height: 300px;"/>
</body>
</html>
+3 -12
View File
@@ -24,8 +24,7 @@
var l = new OpenLayers.Geometry.LineString([point, point2]); var l = new OpenLayers.Geometry.LineString([point, point2]);
var f = new OpenLayers.Feature.Vector(l); var f = new OpenLayers.Feature.Vector(l);
var data = parser.write([f]); var data = parser.write([f]);
var data = data.replace(/<\?[^>]*\?>/, ''); // Remove XML Prolog t.xml_eq(data, '<rss xmlns="http://backend.userland.com/rss2"><item><title></title><description></description><georss:line xmlns:georss="http://www.georss.org/georss">45.68 -111.04 45.68 -112.04</georss:line></item></rss>', 'GeoRSS serializes a line correctly');
t.eq(data, '<rss xmlns="http://backend.userland.com/rss2"><item><title></title><description></description><georss:line xmlns:georss="http://www.georss.org/georss">45.68 -111.04 45.68 -112.04</georss:line></item></rss>', 'GeoRSS serializes a line correctly');
} }
function test_Format_GeoRSS_w3cgeo(t) { function test_Format_GeoRSS_w3cgeo(t) {
t.plan(2); t.plan(2);
@@ -50,11 +49,7 @@
var data = parser.read(feed); var data = parser.read(feed);
var out = parser.write(data); var out = parser.write(data);
var expected_result = output[i]; var expected_result = output[i];
if (OpenLayers.Util.getBrowserName() == "opera") { t.xml_eq(out, expected_result, "Output gave expected value");
expected_result = expected_result.replace(/&gt;/g, ">");
}
var out = out.replace(/<\?[^>]*\?>/, ''); // Remove XML Prolog
t.eq(out, expected_result, "Output gave expected value");
} }
} }
function test_Format_GeoRSS_gml_roundtrip(t) { function test_Format_GeoRSS_gml_roundtrip(t) {
@@ -65,11 +60,7 @@
var data = parser.read(feed); var data = parser.read(feed);
var out = parser.write(data); var out = parser.write(data);
var expected_result = output_gml[i]; var expected_result = output_gml[i];
if (OpenLayers.Util.getBrowserName() == "opera") { t.xml_eq(out, expected_result, "Output gave expected value");
expected_result = expected_result.replace(/&gt;/g, ">");
}
var out = out.replace(/<\?[^>]*\?>/, ''); // Remove XML Prolog
t.eq(out, expected_result, "Output gave expected value");
} }
} }
+3 -1
View File
@@ -2332,7 +2332,9 @@ onload=function()
} }
} }
// --> // -->
</script></head><body> </script>
<script type="text/javascript" src="xml_eq.js"></script>
</head><body>
<div id="col1"> <div id="col1">
<div id="col1_header">Test pages:</div> <div id="col1_header">Test pages:</div>
+1
View File
@@ -1,5 +1,6 @@
<ul id="testlist"> <ul id="testlist">
<li>OpenLayers.html</li> <li>OpenLayers.html</li>
<li>Extras.html</li>
<li>Ajax.html</li> <li>Ajax.html</li>
<li>BaseTypes.html</li> <li>BaseTypes.html</li>
<li>BaseTypes/Bounds.html</li> <li>BaseTypes/Bounds.html</li>