[OpenLayers-Commits] r11790 - in trunk/openlayers: lib/OpenLayers tests

commits-20090109 at openlayers.org commits-20090109 at openlayers.org
Wed Mar 30 10:17:16 EDT 2011


Author: fredj
Date: 2011-03-30 07:17:13 -0700 (Wed, 30 Mar 2011)
New Revision: 11790

Modified:
   trunk/openlayers/lib/OpenLayers/Feature.js
   trunk/openlayers/tests/Feature.html
Log:
remove dependency on AnchoredBubble and Marker from Feature. r=marcjansen,bartvde,erilem (closes #1633)

Modified: trunk/openlayers/lib/OpenLayers/Feature.js
===================================================================
--- trunk/openlayers/lib/OpenLayers/Feature.js	2011-03-30 14:07:56 UTC (rev 11789)
+++ trunk/openlayers/lib/OpenLayers/Feature.js	2011-03-30 14:17:13 UTC (rev 11790)
@@ -7,8 +7,6 @@
 /**
  * @requires OpenLayers/BaseTypes/Class.js
  * @requires OpenLayers/Util.js
- * @requires OpenLayers/Marker.js
- * @requires OpenLayers/Popup/AnchoredBubble.js
  */
 
 /**
@@ -53,7 +51,7 @@
      * {<OpenLayers.Class>} The class which will be used to instantiate
      *     a new Popup. Default is <OpenLayers.Popup.AnchoredBubble>.
      */
-    popupClass: OpenLayers.Popup.AnchoredBubble,
+    popupClass: null,
 
     /** 
      * Property: popup 
@@ -187,17 +185,16 @@
     createPopup: function(closeBox) {
 
         if (this.lonlat != null) {
-            
-            var id = this.id + "_popup";
-            var anchor = (this.marker) ? this.marker.icon : null;
-
             if (!this.popup) {
-                this.popup = new this.popupClass(id, 
-                                                 this.lonlat,
-                                                 this.data.popupSize,
-                                                 this.data.popupContentHTML,
-                                                 anchor, 
-                                                 closeBox); 
+                var anchor = (this.marker) ? this.marker.icon : null;
+                var popupClass = this.popupClass ? 
+                    this.popupClass : OpenLayers.Popup.AnchoredBubble;
+                this.popup = new popupClass(this.id + "_popup", 
+                                            this.lonlat,
+                                            this.data.popupSize,
+                                            this.data.popupContentHTML,
+                                            anchor, 
+                                            closeBox); 
             }    
             if (this.data.overflow != null) {
                 this.popup.contentDiv.style.overflow = this.data.overflow;

Modified: trunk/openlayers/tests/Feature.html
===================================================================
--- trunk/openlayers/tests/Feature.html	2011-03-30 14:07:56 UTC (rev 11789)
+++ trunk/openlayers/tests/Feature.html	2011-03-30 14:17:13 UTC (rev 11790)
@@ -7,7 +7,7 @@
     var feature, layer; 
     
     function test_Feature_constructor (t) {
-        t.plan( 7 );
+        t.plan( 6 );
 
         var layer = {};
         var lonlat = new OpenLayers.LonLat(2,1);
@@ -26,11 +26,10 @@
         t.ok( feature.lonlat.equals(lonlat), "feature.lonlat set correctly" );
         t.eq( feature.data.iconURL, iconURL, "feature.data.iconURL set correctly" );
         t.ok( feature.data.iconSize.equals(iconSize), "feature.data.iconSize set correctly" );
-        t.ok( feature.popupClass == OpenLayers.Popup.AnchoredBubble, "default popupClass is AnchoredBubble");
     }
     
     function test_Feature_createPopup (t) {
-        t.plan(1);
+        t.plan(3);
         var layer = {};
         var lonlat = new OpenLayers.LonLat(2,1);
         var iconURL = 'http://boston.openguides.org/features/ORANGE.png';
@@ -45,6 +44,12 @@
         //Safari 3 separates style overflow into overflow-x and overflow-y
         var prop = (OpenLayers.BROWSER_NAME == 'safari') ? 'overflowX' : 'overflow';
         t.eq(popup.contentDiv.style[prop], "auto", 'overflow on popup is correct');
+        t.ok( popup instanceof OpenLayers.Popup.AnchoredBubble, "popup is an AnchoredBubble by defaults");
+        feature.destroyPopup();
+        
+        feature.popupClass = OpenLayers.Popup.FramedCloud;
+        popup = feature.createPopup(); 
+        t.ok( popup instanceof OpenLayers.Popup.FramedCloud, "setting feature.popupClass works");
     }    
     function test_Feature_createMarker (t) {
         t.plan(1);



More information about the Commits mailing list