OpenLayers OpenLayers

Ticket #768: namespace.patch

File namespace.patch, 14.0 kB (added by tschaub, 1 year ago)

clean up OpenLayers.js and SingleFile.js

  • lib/OpenLayers.js

    old new  
    22 * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt  
    33 * for the full text of the license. */ 
    44 
    5 /* @requires OpenLayers/BaseTypes.js 
    6  */  
     5/** 
     6 * @requires OpenLayers/BaseTypes.js 
     7 */ 
     8(function() { 
     9    /** 
     10     * Before creating the OpenLayers namespace, check to see if 
     11     * OpenLayers.singleFile is true.  This occurs if the 
     12     * OpenLayers/SingleFile.js script is included before this one - as is the 
     13     * case with single file builds. 
     14     */ 
     15    var singleFile = (typeof OpenLayers == "object" && OpenLayers.singleFile); 
     16    /** 
     17     * The OpenLayers object provides a namespace for all things OpenLayers 
     18     * @type Object 
     19     */ 
     20    OpenLayers = { 
     21         
     22        /** 
     23         * @type String 
     24         * @private 
     25         */ 
     26        _scriptName: (!singleFile) ? "lib/OpenLayers.js" : "OpenLayers.js", 
    727 
    8 //// 
    9 /// This blob sucks in all the files in uncompressed form for ease of use 
    10 /// 
    11  
    12 OpenLayers = new Object(); 
    13  
    14 OpenLayers._scriptName = (  
    15     typeof(_OPENLAYERS_SFL_) == "undefined" ? "lib/OpenLayers.js"  
    16                                             : "OpenLayers.js" ); 
    17  
    18 OpenLayers._getScriptLocation = function () { 
    19     var scriptLocation = ""; 
    20     var SCRIPT_NAME = OpenLayers._scriptName; 
    21   
    22     var scripts = document.getElementsByTagName('script'); 
    23     for (var i = 0; i < scripts.length; i++) { 
    24         var src = scripts[i].getAttribute('src'); 
    25         if (src) { 
    26             var index = src.lastIndexOf(SCRIPT_NAME);  
    27             // is it found, at the end of the URL? 
    28             if ((index > -1) && (index + SCRIPT_NAME.length == src.length)) {   
    29                 scriptLocation = src.slice(0, -SCRIPT_NAME.length); 
    30                 break; 
     28        /** 
     29         * @type String 
     30         * @returns Path to this script 
     31         * @private 
     32         */ 
     33        _getScriptLocation: function () { 
     34            var scriptLocation = ""; 
     35            var scriptName = OpenLayers._scriptName; 
     36          
     37            var scripts = document.getElementsByTagName('script'); 
     38            for (var i = 0; i < scripts.length; i++) { 
     39                var src = scripts[i].getAttribute('src'); 
     40                if (src) { 
     41                    var index = src.lastIndexOf(scriptName);  
     42                    // is it found, at the end of the URL? 
     43                    if ((index > -1) && (index + scriptName.length == src.length)) {   
     44                        scriptLocation = src.slice(0, -scriptName.length); 
     45                        break; 
     46                    } 
     47                } 
    3148            } 
     49            return scriptLocation; 
    3250        } 
    33     } 
    34     return scriptLocation; 
    35 
     51    }; 
    3652 
    37 /* 
    38   `_OPENLAYERS_SFL_` is a flag indicating this file is being included 
    39   in a Single File Library build of the OpenLayers Library. 
    40  
    41   When we are *not* part of a SFL build we dynamically include the 
    42   OpenLayers library code. 
    43  
    44   When we *are* part of a SFL build we do not dynamically include the  
    45   OpenLayers library code as it will be appended at the end of this file. 
    46 */ 
    47 if (typeof(_OPENLAYERS_SFL_) == "undefined") { 
    48     /* 
    49       The original code appeared to use a try/catch block 
    50       to avoid polluting the global namespace, 
    51       we now use a anonymous function to achieve the same result. 
     53    /** 
     54     * OpenLayers.singleFile is a flag indicating this file is being included 
     55     * in a Single File Library build of the OpenLayers Library. 
     56     *  
     57     * When we are *not* part of a SFL build we dynamically include the 
     58     * OpenLayers library code. 
     59     *  
     60     * When we *are* part of a SFL build we do not dynamically include the  
     61     * OpenLayers library code as it will be appended at the end of this file. 
    5262     */ 
    53     (function() { 
    54     var jsfiles=new Array( 
    55         "OpenLayers/BaseTypes.js", 
    56         "OpenLayers/Util.js", 
    57         "OpenLayers/Console.js", 
    58         "Rico/Corner.js", 
    59         "Rico/Color.js", 
    60         "OpenLayers/Ajax.js", 
    61         "OpenLayers/Events.js", 
    62         "OpenLayers/Map.js", 
    63         "OpenLayers/Layer.js", 
    64         "OpenLayers/Icon.js", 
    65         "OpenLayers/Marker.js", 
    66         "OpenLayers/Marker/Box.js", 
    67         "OpenLayers/Popup.js", 
    68         "OpenLayers/Tile.js", 
    69         "OpenLayers/Feature.js", 
    70         "OpenLayers/Feature/Vector.js", 
    71         "OpenLayers/Feature/WFS.js", 
    72         "OpenLayers/Tile/Image.js", 
    73         "OpenLayers/Tile/WFS.js", 
    74         "OpenLayers/Layer/Image.js", 
    75         "OpenLayers/Layer/EventPane.js", 
    76         "OpenLayers/Layer/FixedZoomLevels.js", 
    77         "OpenLayers/Layer/Google.js", 
    78         "OpenLayers/Layer/VirtualEarth.js", 
    79         "OpenLayers/Layer/Yahoo.js", 
    80         "OpenLayers/Layer/HTTPRequest.js", 
    81         "OpenLayers/Layer/Grid.js", 
    82         "OpenLayers/Layer/MapServer.js", 
    83         "OpenLayers/Layer/MapServer/Untiled.js", 
    84         "OpenLayers/Layer/KaMap.js", 
    85         "OpenLayers/Layer/MultiMap.js", 
    86         "OpenLayers/Layer/Markers.js", 
    87         "OpenLayers/Layer/Text.js", 
    88         "OpenLayers/Layer/WorldWind.js", 
    89         "OpenLayers/Layer/WMS.js", 
    90         "OpenLayers/Layer/WMS/Untiled.js", 
    91         "OpenLayers/Layer/GeoRSS.js", 
    92         "OpenLayers/Layer/Boxes.js", 
    93         "OpenLayers/Layer/Canvas.js", 
    94         "OpenLayers/Layer/TMS.js", 
    95         "OpenLayers/Popup/Anchored.js", 
    96         "OpenLayers/Popup/AnchoredBubble.js", 
    97         "OpenLayers/Handler.js", 
    98         "OpenLayers/Handler/Point.js", 
    99         "OpenLayers/Handler/Path.js", 
    100         "OpenLayers/Handler/Polygon.js", 
    101         "OpenLayers/Handler/Feature.js", 
    102         "OpenLayers/Handler/Drag.js", 
    103         "OpenLayers/Handler/Box.js", 
    104         "OpenLayers/Handler/MouseWheel.js", 
    105         "OpenLayers/Handler/Keyboard.js", 
    106         "OpenLayers/Control.js", 
    107         "OpenLayers/Control/ZoomBox.js", 
    108         "OpenLayers/Control/ZoomToMaxExtent.js", 
    109         "OpenLayers/Control/DragPan.js", 
    110         "OpenLayers/Control/Navigation.js", 
    111         "OpenLayers/Control/MouseDefaults.js", 
    112         "OpenLayers/Control/MousePosition.js", 
    113         "OpenLayers/Control/OverviewMap.js", 
    114         "OpenLayers/Control/KeyboardDefaults.js", 
    115         "OpenLayers/Control/PanZoom.js", 
    116         "OpenLayers/Control/PanZoomBar.js", 
    117         "OpenLayers/Control/ArgParser.js", 
    118         "OpenLayers/Control/Permalink.js", 
    119         "OpenLayers/Control/Scale.js", 
    120         "OpenLayers/Control/LayerSwitcher.js", 
    121         "OpenLayers/Control/DrawFeature.js", 
    122         "OpenLayers/Control/Panel.js", 
    123         "OpenLayers/Control/SelectFeature.js", 
    124         "OpenLayers/Geometry.js", 
    125         "OpenLayers/Geometry/Rectangle.js", 
    126         "OpenLayers/Geometry/Collection.js", 
    127         "OpenLayers/Geometry/Point.js", 
    128         "OpenLayers/Geometry/MultiPoint.js", 
    129         "OpenLayers/Geometry/Curve.js", 
    130         "OpenLayers/Geometry/LineString.js", 
    131         "OpenLayers/Geometry/LinearRing.js",         
    132         "OpenLayers/Geometry/Polygon.js", 
    133         "OpenLayers/Geometry/MultiLineString.js", 
    134         "OpenLayers/Geometry/MultiPolygon.js", 
    135         "OpenLayers/Geometry/Surface.js", 
    136         "OpenLayers/Renderer.js", 
    137         "OpenLayers/Renderer/Elements.js", 
    138         "OpenLayers/Renderer/SVG.js", 
    139         "OpenLayers/Renderer/VML.js", 
    140         "OpenLayers/Layer/Vector.js", 
    141         "OpenLayers/Layer/GML.js", 
    142         "OpenLayers/Format.js", 
    143         "OpenLayers/Format/GML.js", 
    144         "OpenLayers/Format/KML.js", 
    145         "OpenLayers/Format/GeoRSS.js", 
    146         "OpenLayers/Format/WFS.js", 
    147         "OpenLayers/Format/WKT.js", 
    148         "OpenLayers/Layer/WFS.js", 
    149         "OpenLayers/Control/MouseToolbar.js", 
    150         "OpenLayers/Control/NavToolbar.js", 
    151         "OpenLayers/Control/EditingToolbar.js" 
    152     ); // etc. 
     63    if(!singleFile) { 
     64        var jsfiles = new Array( 
     65            "OpenLayers/BaseTypes.js", 
     66            "OpenLayers/Util.js", 
     67            "OpenLayers/Console.js", 
     68            "Rico/Corner.js", 
     69            "Rico/Color.js", 
     70            "OpenLayers/Ajax.js", 
     71            "OpenLayers/Events.js", 
     72            "OpenLayers/Map.js", 
     73            "OpenLayers/Layer.js", 
     74            "OpenLayers/Icon.js", 
     75            "OpenLayers/Marker.js", 
     76            "OpenLayers/Marker/Box.js", 
     77            "OpenLayers/Popup.js", 
     78            "OpenLayers/Tile.js", 
     79            "OpenLayers/Feature.js", 
     80            "OpenLayers/Feature/Vector.js", 
     81            "OpenLayers/Feature/WFS.js", 
     82            "OpenLayers/Tile/Image.js", 
     83            "OpenLayers/Tile/WFS.js", 
     84            "OpenLayers/Layer/Image.js", 
     85            "OpenLayers/Layer/EventPane.js", 
     86            "OpenLayers/Layer/FixedZoomLevels.js", 
     87            "OpenLayers/Layer/Google.js", 
     88            "OpenLayers/Layer/VirtualEarth.js", 
     89            "OpenLayers/Layer/Yahoo.js", 
     90            "OpenLayers/Layer/HTTPRequest.js", 
     91            "OpenLayers/Layer/Grid.js", 
     92            "OpenLayers/Layer/MapServer.js", 
     93            "OpenLayers/Layer/MapServer/Untiled.js", 
     94            "OpenLayers/Layer/KaMap.js", 
     95            "OpenLayers/Layer/MultiMap.js", 
     96            "OpenLayers/Layer/Markers.js", 
     97            "OpenLayers/Layer/Text.js", 
     98            "OpenLayers/Layer/WorldWind.js", 
     99            "OpenLayers/Layer/WMS.js", 
     100            "OpenLayers/Layer/WMS/Untiled.js", 
     101            "OpenLayers/Layer/GeoRSS.js", 
     102            "OpenLayers/Layer/Boxes.js", 
     103            "OpenLayers/Layer/Canvas.js", 
     104            "OpenLayers/Layer/TMS.js", 
     105            "OpenLayers/Popup/Anchored.js", 
     106            "OpenLayers/Popup/AnchoredBubble.js", 
     107            "OpenLayers/Handler.js", 
     108            "OpenLayers/Handler/Point.js", 
     109            "OpenLayers/Handler/Path.js", 
     110            "OpenLayers/Handler/Polygon.js", 
     111            "OpenLayers/Handler/Feature.js", 
     112            "OpenLayers/Handler/Drag.js", 
     113            "OpenLayers/Handler/Box.js", 
     114            "OpenLayers/Handler/MouseWheel.js", 
     115            "OpenLayers/Handler/Keyboard.js", 
     116            "OpenLayers/Control.js", 
     117            "OpenLayers/Control/ZoomBox.js", 
     118            "OpenLayers/Control/ZoomToMaxExtent.js", 
     119            "OpenLayers/Control/DragPan.js", 
     120            "OpenLayers/Control/Navigation.js", 
     121            "OpenLayers/Control/MouseDefaults.js", 
     122            "OpenLayers/Control/MousePosition.js", 
     123            "OpenLayers/Control/OverviewMap.js", 
     124            "OpenLayers/Control/KeyboardDefaults.js", 
     125            "OpenLayers/Control/PanZoom.js", 
     126            "OpenLayers/Control/PanZoomBar.js", 
     127            "OpenLayers/Control/ArgParser.js", 
     128            "OpenLayers/Control/Permalink.js", 
     129            "OpenLayers/Control/Scale.js", 
     130            "OpenLayers/Control/LayerSwitcher.js", 
     131            "OpenLayers/Control/DrawFeature.js", 
     132            "OpenLayers/Control/Panel.js", 
     133            "OpenLayers/Control/SelectFeature.js", 
     134            "OpenLayers/Geometry.js", 
     135            "OpenLayers/Geometry/Rectangle.js", 
     136            "OpenLayers/Geometry/Collection.js", 
     137            "OpenLayers/Geometry/Point.js", 
     138            "OpenLayers/Geometry/MultiPoint.js", 
     139            "OpenLayers/Geometry/Curve.js", 
     140            "OpenLayers/Geometry/LineString.js", 
     141            "OpenLayers/Geometry/LinearRing.js",         
     142            "OpenLayers/Geometry/Polygon.js", 
     143            "OpenLayers/Geometry/MultiLineString.js", 
     144            "OpenLayers/Geometry/MultiPolygon.js", 
     145            "OpenLayers/Geometry/Surface.js", 
     146            "OpenLayers/Renderer.js", 
     147            "OpenLayers/Renderer/Elements.js", 
     148            "OpenLayers/Renderer/SVG.js", 
     149            "OpenLayers/Renderer/VML.js", 
     150            "OpenLayers/Layer/Vector.js", 
     151            "OpenLayers/Layer/GML.js", 
     152            "OpenLayers/Format.js", 
     153            "OpenLayers/Format/GML.js", 
     154            "OpenLayers/Format/KML.js", 
     155            "OpenLayers/Format/GeoRSS.js", 
     156            "OpenLayers/Format/WFS.js", 
     157            "OpenLayers/Format/WKT.js", 
     158            "OpenLayers/Layer/WFS.js", 
     159            "OpenLayers/Control/MouseToolbar.js", 
     160            "OpenLayers/Control/NavToolbar.js", 
     161            "OpenLayers/Control/EditingToolbar.js" 
     162        ); // etc. 
    153163 
    154     var allScriptTags = ""; 
    155     var host = OpenLayers._getScriptLocation() + "lib/"; 
    156  
    157     for (var i = 0; i < jsfiles.length; i++) { 
    158         if (/MSIE/.test(navigator.userAgent) || /Safari/.test(navigator.userAgent)) { 
    159             var currentScriptTag = "<script src='" + host + jsfiles[i] + "'></script>";  
    160             allScriptTags += currentScriptTag; 
    161         } else { 
    162             var s = document.createElement("script"); 
    163             s.src = host + jsfiles[i]; 
    164             var h = document.getElementsByTagName("head").length ?  
    165                        document.getElementsByTagName("head")[0] :  
    166                        document.body; 
    167             h.appendChild(s); 
     164        var allScriptTags = ""; 
     165        var host = OpenLayers._getScriptLocation() + "lib/"; 
     166     
     167        for (var i = 0; i < jsfiles.length; i++) { 
     168            if (/MSIE/.test(navigator.userAgent) || /Safari/.test(navigator.userAgent)) { 
     169                var currentScriptTag = "<script src='" + host + jsfiles[i] + "'></script>";  
     170                allScriptTags += currentScriptTag; 
     171            } else { 
     172                var s = document.createElement("script"); 
     173                s.src = host + jsfiles[i]; 
     174                var h = document.getElementsByTagName("head").length ?  
     175                           document.getElementsByTagName("head")[0] :  
     176                           document.body; 
     177                h.appendChild(s); 
     178            } 
    168179        } 
     180        if (allScriptTags) document.write(allScriptTags); 
    169181    } 
    170     if (allScriptTags) document.write(allScriptTags); 
    171     })(); 
    172 
     182})(); 
    173183OpenLayers.VERSION_NUMBER="$Revision$"; 
  • lib/OpenLayers/SingleFile.js

    old new  
    22 * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt  
    33 * for the full text of the license. */ 
    44 
    5 _OPENLAYERS_SFL_=true; 
     5OpenLayers = { 
     6    singleFile: true 
     7}; 
    68