[Commits] r2721 - in sandbox/gxm/geoext/gxm: examples lib tests tests/lib tests/winopen

commits at geoext.org commits at geoext.org
Thu May 26 09:05:44 CEST 2011


Author: marcjansen
Date: 2011-05-26 09:05:44 +0200 (Thu, 26 May 2011)
New Revision: 2721

Added:
   sandbox/gxm/geoext/gxm/tests/helperfunctions.js
   sandbox/gxm/geoext/gxm/tests/winopen/
   sandbox/gxm/geoext/gxm/tests/winopen/button-test-window.html
Modified:
   sandbox/gxm/geoext/gxm/examples/layerlist.js
   sandbox/gxm/geoext/gxm/lib/Button.js
   sandbox/gxm/geoext/gxm/lib/LayerList.js
   sandbox/gxm/geoext/gxm/tests/lib/Button.test.html
   sandbox/gxm/geoext/gxm/tests/lib/LayerList.test.html
   sandbox/gxm/geoext/gxm/tests/lib/MapPanel.test.html
Log:
  - tests and minors

Modified: sandbox/gxm/geoext/gxm/examples/layerlist.js
===================================================================
--- sandbox/gxm/geoext/gxm/examples/layerlist.js	2011-05-24 14:48:55 UTC (rev 2720)
+++ sandbox/gxm/geoext/gxm/examples/layerlist.js	2011-05-26 07:05:44 UTC (rev 2721)
@@ -51,21 +51,21 @@
                     'OpenStreetMap Mapnik', 
                     { 
                         sphericalMercator : true, 
-                        attribution : 'Daten <a href="http://creativecommons.org/licenses/by-sa/2.0/de">CC-By-SA</a> von <a href="http://openstreetmap.org/">OpenStreetMap</a>'
+                        attribution : 'Data <a href="http://creativecommons.org/licenses/by-sa/2.0">CC-By-SA</a> from <a href="http://openstreetmap.org/">OpenStreetMap</a>'
                     }
                 ),
                 new OpenLayers.Layer.OSM.Osmarender(
                     'OpenStreetMap Osmarender', 
                     { 
                         sphericalMercator : true, 
-                        attribution : 'Daten <a href="http://creativecommons.org/licenses/by-sa/2.0/de">CC-By-SA</a> von <a href="http://openstreetmap.org/">OpenStreetMap</a>'
+                        attribution : 'Data <a href="http://creativecommons.org/licenses/by-sa/2.0">CC-By-SA</a> from <a href="http://openstreetmap.org/">OpenStreetMap</a>'
                     }
                 ),
                 new OpenLayers.Layer.OSM.CycleMap(
                     'OpenStreetMap CycleMap', 
                     {
                         sphericalMercator : true, 
-                        attribution : 'Daten <a href="http://creativecommons.org/licenses/by-sa/2.0/de">CC-By-SA</a> von <a href="http://openstreetmap.org/">OpenStreetMap</a> &amp; <a href="http://www.opencyclemap.org/">OpenCycleMap</a>'
+                        attribution : 'Data <a href="http://creativecommons.org/licenses/by-sa/2.0">CC-By-SA</a> from <a href="http://openstreetmap.org/">OpenStreetMap</a> &amp; <a href="http://www.opencyclemap.org/">OpenCycleMap</a>'
                     }
                 ),
                 vector

Modified: sandbox/gxm/geoext/gxm/lib/Button.js
===================================================================
--- sandbox/gxm/geoext/gxm/lib/Button.js	2011-05-24 14:48:55 UTC (rev 2720)
+++ sandbox/gxm/geoext/gxm/lib/Button.js	2011-05-26 07:05:44 UTC (rev 2721)
@@ -100,6 +100,9 @@
     },
     onCtrlDeactivate: function(){
     }
+//    ,onPress: function(e){
+//        GXM.Button.superclass.onPress.call(this, e);
+//    }
 });
 Ext.reg('gxm_button', GXM.Button);
 

Modified: sandbox/gxm/geoext/gxm/lib/LayerList.js
===================================================================
--- sandbox/gxm/geoext/gxm/lib/LayerList.js	2011-05-24 14:48:55 UTC (rev 2720)
+++ sandbox/gxm/geoext/gxm/lib/LayerList.js	2011-05-26 07:05:44 UTC (rev 2721)
@@ -43,7 +43,6 @@
                 // template member functions
                 isVisible: function(layer) {
                     var visible = false;
-                    //TODO: test
                     if (layer.isBaseLayer && layer.map.baseLayer === layer) {
                         visible = true;
                     } else {

Added: sandbox/gxm/geoext/gxm/tests/helperfunctions.js
===================================================================
--- sandbox/gxm/geoext/gxm/tests/helperfunctions.js	                        (rev 0)
+++ sandbox/gxm/geoext/gxm/tests/helperfunctions.js	2011-05-26 07:05:44 UTC (rev 2721)
@@ -0,0 +1,54 @@
+function getMap(){
+    var map = new OpenLayers.Map({
+        layers: [
+            new OpenLayers.Layer.WMS(
+                "OpenLayers WMS", 
+                "http://vmap0.tiles.osgeo.org/wms/vmap0", 
+                {
+                    layers: "basic"
+                }
+            )
+        ]
+    });
+    return map;
+}
+
+function getMapPanel(opts) {
+    var map = getMap();
+    var options = Ext.apply(opts || {});
+    if (!opts || !opts.map) {
+        options.map = map;
+    }
+    var mappanel = new GXM.MapPanel(options);
+    return mappanel;
+}
+
+function getLazyMapPanel(opts) {
+    var options = Ext.apply(opts || {}, { xtype: 'gxm_mappanel' });
+    options.map = ( opts && opts.map ) ? opts.map : getMap();
+    var mappanel = options;
+    
+    var panel = new Ext.Panel({
+        fullscreen: true,
+        items:[ mappanel ]
+    });
+    
+    return panel.items.get(0);
+}
+
+//TODO: remove eventually
+var log = function(){
+    if (console && console.log) {
+        for (arg in arguments) {
+            console.log(arguments[arg]);
+        } 
+    }
+};
+//TODO: remove eventually
+var dir = function(){
+    if (console && console.dir) {
+        for (arg in arguments) {
+            console.dir(arguments[arg]);
+        } 
+    }
+};
\ No newline at end of file

Modified: sandbox/gxm/geoext/gxm/tests/lib/Button.test.html
===================================================================
--- sandbox/gxm/geoext/gxm/tests/lib/Button.test.html	2011-05-24 14:48:55 UTC (rev 2720)
+++ sandbox/gxm/geoext/gxm/tests/lib/Button.test.html	2011-05-26 07:05:44 UTC (rev 2721)
@@ -12,46 +12,11 @@
         <!-- This file loads all relevant files -->
         <script type="text/javascript" src="../../lib/GXM.js"></script>
         
+        <!-- load test helper functions -->
+        <script type="text/javascript" src="../helperfunctions.js"></script>        
+        
         <script type="text/javascript">
 
-function getMap(){
-    var map = new OpenLayers.Map({
-        layers: [
-            new OpenLayers.Layer.WMS(
-                "OpenLayers WMS", 
-                "http://vmap0.tiles.osgeo.org/wms/vmap0", 
-                {
-                    layers: "basic"
-                }
-            )
-        ]
-    });
-    return map;
-}
-
-function getMapPanel() {
-    var map = getMap();
-    var mappanel = new GXM.MapPanel({
-        map: map
-    });
-    return mappanel;
-}
-
-function getLazyMapPanel() {
-    var map = getMap();
-    var mappanel = {
-        xtype: 'gxm_mappanel',
-        map: map  
-    };
-    
-    var panel = new Ext.Panel({
-        fullscreen: true,
-        items:[ mappanel ]
-    });
-    
-    return panel.items.get(0);
-}
-
 // can be copied to other testfiles, simply adjust the first variables
 function test_definition(t) {
     var undef,
@@ -80,9 +45,103 @@
     }
 }
 
+function test_triggerControlCalled(t) {
+    if(Ext.is.Phone){
+        t.plan(1);
+        t.ok(true, 'skipped because of missing event emulation for mobile device. TODO revisit.');
+        return;
+    }
+    
+    var expectedBtnClicks = [
+        'zoomIn',
+        'zoomOut'
+    ];
+    t.plan(expectedBtnClicks.length * 2);       
+  
+    t.open_window('./winopen/button-test-window.html', function(wnd) {
+    
+    var recordedEvents = {};
+    if(!Ext.is.Phone) {
+        recordedEvents = { checkpoints: [
+        ], events: [
+        {layerX:"9", y:"11", returnValue:"true", clientX:"55", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"1695", x:"55", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"6", clientY:"11", ctrlKey:"false", target:"#ext-comp-1008 DIV", layerY:"6", charCode:"0", type:"mousedown", pageX:"55", cancelBubble:"false", pageY:"11", clipboardData:null, metaKey:"false", detail:"1", offsetX:"9", relatedTarget:null, screenY:"73", time:"1000"},
+        {layerX:"9", y:"11", returnValue:"true", clientX:"55", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"1695", x:"55", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"6", clientY:"11", ctrlKey:"false", target:"#ext-comp-1008 DIV", layerY:"6", charCode:"0", type:"mouseup", pageX:"55", cancelBubble:"false", pageY:"11", clipboardData:null, metaKey:"false", detail:"1", offsetX:"9", relatedTarget:null, screenY:"73", time:"800"},
+        {layerX:"9", y:"11", returnValue:"true", clientX:"55", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"1695", x:"55", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"6", clientY:"11", ctrlKey:"false", target:"#ext-comp-1008 DIV", layerY:"6", charCode:"0", type:"click", pageX:"55", cancelBubble:"false", pageY:"11", clipboardData:null, metaKey:"false", detail:"1", offsetX:"9", relatedTarget:null, screenY:"73", time:"600"},
+        {layerX:"9", y:"11", returnValue:"true", clientX:"15", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"1695", x:"15", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"6", clientY:"11", ctrlKey:"false", target:"#ext-comp-1004 DIV", layerY:"6", charCode:"0", type:"mousedown", pageX:"15", cancelBubble:"false", pageY:"11", clipboardData:null, metaKey:"false", detail:"1", offsetX:"9", relatedTarget:null, screenY:"73", time:"400"},
+        {layerX:"9", y:"11", returnValue:"true", clientX:"15", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"1695", x:"15", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"6", clientY:"11", ctrlKey:"false", target:"#ext-comp-1004 DIV", layerY:"6", charCode:"0", type:"mouseup", pageX:"15", cancelBubble:"false", pageY:"11", clipboardData:null, metaKey:"false", detail:"1", offsetX:"9", relatedTarget:null, screenY:"73", time:"200"},
+        {layerX:"9", y:"11", returnValue:"true", clientX:"15", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"1695", x:"15", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"6", clientY:"11", ctrlKey:"false", target:"#ext-comp-1004 DIV", layerY:"6", charCode:"0", type:"click", pageX:"15", cancelBubble:"false", pageY:"11", clipboardData:null, metaKey:"false", detail:"1", offsetX:"9", relatedTarget:null, screenY:"73", time:"0"}
+        ] };
+    } 
+//    else {
+//        recordedEvents = { checkpoints: [
+//        ], events: [
+//        {layerX:"9", y:"11", returnValue:"true", clientX:"55", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"1695", x:"55", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"6", clientY:"11", ctrlKey:"false", target:"#ext-comp-1008 DIV", layerY:"6", charCode:"0", type:"touchstart", pageX:"55", cancelBubble:"false", pageY:"11", clipboardData:null, metaKey:"false", detail:"1", offsetX:"9", relatedTarget:null, screenY:"73", time:"1000"},
+//        {layerX:"9", y:"11", returnValue:"true", clientX:"55", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"1695", x:"55", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"6", clientY:"11", ctrlKey:"false", target:"#ext-comp-1008 DIV", layerY:"6", charCode:"0", type:"touchend", pageX:"55", cancelBubble:"false", pageY:"11", clipboardData:null, metaKey:"false", detail:"1", offsetX:"9", relatedTarget:null, screenY:"73", time:"800"},
+//        {layerX:"9", y:"11", returnValue:"true", clientX:"15", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"1695", x:"15", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"6", clientY:"11", ctrlKey:"false", target:"#ext-comp-1004 DIV", layerY:"6", charCode:"0", type:"touchstart", pageX:"15", cancelBubble:"false", pageY:"11", clipboardData:null, metaKey:"false", detail:"1", offsetX:"9", relatedTarget:null, screenY:"73", time:"400"},
+//        {layerX:"9", y:"11", returnValue:"true", clientX:"15", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"1695", x:"15", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"6", clientY:"11", ctrlKey:"false", target:"#ext-comp-1004 DIV", layerY:"6", charCode:"0", type:"touchend", pageX:"15", cancelBubble:"false", pageY:"11", clipboardData:null, metaKey:"false", detail:"1", offsetX:"9", relatedTarget:null, screenY:"73", time:"200"}
+//        ] };
+//    }
+            
+        t.replay_events(wnd, recordedEvents);
+        
+        t.delay_call(5, function(){
+            Ext.each(expectedBtnClicks, function(expectedBtn) {
+                t.ok(wnd.btnLogger[expectedBtn].handlerCalled, "Button '" + expectedBtn + "' was clicked and its handler-method invoked.");
+                t.ok(wnd.btnLogger[expectedBtn].triggerCalled, "Button '" + expectedBtn + "' was clicked and its trigger-method invoked.");
+            });
+        });
+    }, 5);
+}
 
+function test_activateControlCalled(t){
+    if(Ext.is.Phone){
+        t.plan(1);
+        t.ok(true, 'skipped because of missing event emulation for mobile device. TODO revisit.');
         
+        return;
+    }
+    
+    
+    t.plan(3);
+    
+    t.open_window('./winopen/button-test-window.html', function(wnd) {
+    
+    var recordedEvents = { checkpoints: [
+], events: [
+{layerX:"6", y:"10", returnValue:"true", clientX:"924", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"3040", x:"924", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"3", clientY:"10", ctrlKey:"false", target:"#ext-comp-1011 DIV", layerY:"3", charCode:"0", type:"mousedown", pageX:"924", cancelBubble:"false", pageY:"10", clipboardData:null, metaKey:"false", detail:"1", offsetX:"6", relatedTarget:null, screenY:"297", time:"1600"},
+{layerX:"6", y:"10", returnValue:"true", clientX:"924", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"3040", x:"924", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"3", clientY:"10", ctrlKey:"false", target:"#ext-comp-1011 DIV", layerY:"3", charCode:"0", type:"mouseup", pageX:"924", cancelBubble:"false", pageY:"10", clipboardData:null, metaKey:"false", detail:"1", offsetX:"6", relatedTarget:null, screenY:"297", time:"1400"},
+{layerX:"6", y:"10", returnValue:"true", clientX:"924", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"3040", x:"924", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"3", clientY:"10", ctrlKey:"false", target:"#ext-comp-1011 DIV", layerY:"3", charCode:"0", type:"click", pageX:"924", cancelBubble:"false", pageY:"10", clipboardData:null, metaKey:"false", detail:"1", offsetX:"6", relatedTarget:null, screenY:"297", time:"1200"},
+{layerX:"6", y:"10", returnValue:"true", clientX:"924", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"3040", x:"924", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"3", clientY:"10", ctrlKey:"false", target:"#ext-comp-1011 DIV", layerY:"3", charCode:"0", type:"mousedown", pageX:"924", cancelBubble:"false", pageY:"10", clipboardData:null, metaKey:"false", detail:"1", offsetX:"6", relatedTarget:null, screenY:"297", time:"1000"},
+{layerX:"6", y:"10", returnValue:"true", clientX:"924", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"3040", x:"924", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"3", clientY:"10", ctrlKey:"false", target:"#ext-comp-1011 DIV", layerY:"3", charCode:"0", type:"mouseup", pageX:"924", cancelBubble:"false", pageY:"10", clipboardData:null, metaKey:"false", detail:"1", offsetX:"6", relatedTarget:null, screenY:"297", time:"800"},
+{layerX:"6", y:"10", returnValue:"true", clientX:"924", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"3040", x:"924", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"3", clientY:"10", ctrlKey:"false", target:"#ext-comp-1011 DIV", layerY:"3", charCode:"0", type:"click", pageX:"924", cancelBubble:"false", pageY:"10", clipboardData:null, metaKey:"false", detail:"1", offsetX:"6", relatedTarget:null, screenY:"297", time:"600"},
+{layerX:"6", y:"10", returnValue:"true", clientX:"924", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"3040", x:"924", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"3", clientY:"10", ctrlKey:"false", target:"#ext-comp-1011 DIV", layerY:"3", charCode:"0", type:"mousedown", pageX:"924", cancelBubble:"false", pageY:"10", clipboardData:null, metaKey:"false", detail:"1", offsetX:"6", relatedTarget:null, screenY:"297", time:"400"},
+{layerX:"6", y:"10", returnValue:"true", clientX:"924", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"3040", x:"924", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"3", clientY:"10", ctrlKey:"false", target:"#ext-comp-1011 DIV", layerY:"3", charCode:"0", type:"mouseup", pageX:"924", cancelBubble:"false", pageY:"10", clipboardData:null, metaKey:"false", detail:"1", offsetX:"6", relatedTarget:null, screenY:"297", time:"200"},
+{layerX:"6", y:"10", returnValue:"true", clientX:"924", which:"1", shiftKey:"false", cancelable:"true", bubbles:"true", screenX:"3040", x:"924", button:"0", defaultPrevented:"false", altKey:"false", keyCode:"0", offsetY:"3", clientY:"10", ctrlKey:"false", target:"#ext-comp-1011 DIV", layerY:"3", charCode:"0", type:"click", pageX:"924", cancelBubble:"false", pageY:"10", clipboardData:null, metaKey:"false", detail:"1", offsetX:"6", relatedTarget:null, screenY:"297", time:"0"}
+] };
+            
+        t.replay_events(wnd, recordedEvents);
+        
+        t.delay_call(5, function(){
+            
+            t.eq(wnd.btnNavStates.length, 3, "Navigation button was clicked three times.");
+            
+            var stateAfterFirstClick = wnd.btnNavStates[0];
+            var exp_stateAfterSecondClick = (stateAfterFirstClick === 'active') ? 'inactive' : 'active';
+            var exp_stateAfterThirdClick = stateAfterFirstClick
+            
+            t.eq(wnd.btnNavStates[1], exp_stateAfterSecondClick, "State was correct toggled.");
+            t.eq(wnd.btnNavStates[2], exp_stateAfterThirdClick, "State was correct toggled.");
+            
+        });
+    }, 5);
+}
+
+        
         </script>
     </head>
-    <body></body>
+    <body>
+        
+        <div id="btn"></div>
+    
+    </body>
 </html>
\ No newline at end of file

Modified: sandbox/gxm/geoext/gxm/tests/lib/LayerList.test.html
===================================================================
--- sandbox/gxm/geoext/gxm/tests/lib/LayerList.test.html	2011-05-24 14:48:55 UTC (rev 2720)
+++ sandbox/gxm/geoext/gxm/tests/lib/LayerList.test.html	2011-05-26 07:05:44 UTC (rev 2721)
@@ -12,46 +12,12 @@
         <!-- This file loads all relevant files -->
         <script type="text/javascript" src="../../lib/GXM.js"></script>
         
+        <!-- load test helper functions -->
+        <script type="text/javascript" src="../helperfunctions.js"></script>
+        
         <script type="text/javascript">
 
-function getMap(){
-    var map = new OpenLayers.Map({
-        layers: [
-            new OpenLayers.Layer.WMS(
-                "OpenLayers WMS", 
-                "http://vmap0.tiles.osgeo.org/wms/vmap0", 
-                {
-                    layers: "basic"
-                }
-            )
-        ]
-    });
-    return map;
-}
 
-function getMapPanel() {
-    var map = getMap();
-    var mappanel = new GXM.MapPanel({
-        map: map
-    });
-    return mappanel;
-}
-
-function getLazyMapPanel() {
-    var map = getMap();
-    var mappanel = {
-        xtype: 'gxm_mappanel',
-        map: map  
-    };
-    
-    var panel = new Ext.Panel({
-        fullscreen: true,
-        items:[ mappanel ]
-    });
-    
-    return panel.items.get(0);
-}
-
 // can be copied to other testfiles, simply adjust the first variables  
 function test_definition(t) {
     var undef,

Modified: sandbox/gxm/geoext/gxm/tests/lib/MapPanel.test.html
===================================================================
--- sandbox/gxm/geoext/gxm/tests/lib/MapPanel.test.html	2011-05-24 14:48:55 UTC (rev 2720)
+++ sandbox/gxm/geoext/gxm/tests/lib/MapPanel.test.html	2011-05-26 07:05:44 UTC (rev 2721)
@@ -12,46 +12,11 @@
         <!-- This file loads all relevant files -->
         <script type="text/javascript" src="../../lib/GXM.js"></script>
         
+        <!-- load test helper functions -->
+        <script type="text/javascript" src="../helperfunctions.js"></script>
+        
         <script type="text/javascript">
 
-function getMap(){
-    var map = new OpenLayers.Map({
-        layers: [
-            new OpenLayers.Layer.WMS(
-                "OpenLayers WMS", 
-                "http://vmap0.tiles.osgeo.org/wms/vmap0", 
-                {
-                    layers: "basic"
-                }
-            )
-        ]
-    });
-    return map;
-}
-
-function getMapPanel(opts) {
-    var map = getMap();
-    var options = Ext.apply(opts || {});
-    if (!opts || !opts.map) {
-        options.map = map;
-    }
-    var mappanel = new GXM.MapPanel(options);
-    return mappanel;
-}
-
-function getLazyMapPanel(opts) {
-    var options = Ext.apply(opts || {}, { xtype: 'gxm_mappanel' });
-    options.map = ( opts && opts.map ) ? opts.map : getMap();
-    var mappanel = options;
-    
-    var panel = new Ext.Panel({
-        fullscreen: true,
-        items:[ mappanel ]
-    });
-    
-    return panel.items.get(0);
-}
-
 // can be copied to other testfiles, simply adjust the first variables
 function test_definition(t) {
     var undef,
@@ -193,23 +158,6 @@
     panel.destroy();
 }
 
-
-//TODO: remove eventually
-var log = function(){
-    if (console && console.log) {
-        for (arg in arguments) {
-            console.log(arguments[arg]);
-        } 
-    }
-};
-var dir = function(){
-    if (console && console.dir) {
-        for (arg in arguments) {
-            console.dir(arguments[arg]);
-        } 
-    }
-};
-
 function test_extent(t){
     t.plan(2);
     var panel;

Added: sandbox/gxm/geoext/gxm/tests/winopen/button-test-window.html
===================================================================
--- sandbox/gxm/geoext/gxm/tests/winopen/button-test-window.html	                        (rev 0)
+++ sandbox/gxm/geoext/gxm/tests/winopen/button-test-window.html	2011-05-26 07:05:44 UTC (rev 2721)
@@ -0,0 +1,204 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+
+        <title>GXM: The GXM.Button- and SegmentedButton-class</title>
+
+        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0">
+        <meta name="apple-mobile-web-app-capable" content="yes">
+        
+        <link rel="stylesheet" href="../../external/sencha-touch-1.1.0/resources/css/sencha-touch.css" type="text/css">
+        <link rel="stylesheet" href="../../external/OpenLayers.r11966/theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="../../css/gxm.css" type="text/css">
+        <link rel="stylesheet" href="../examples.css" type="text/css">
+        
+        <script type="text/javascript" src="../../external/sencha-touch-1.1.0/sencha-touch.js"></script>
+        <script type="text/javascript" src="../../external/OpenLayers.r11966/OpenLayers.js"></script>
+        
+        <!-- This file loads all relevant files -->
+        <script type="text/javascript" src="../../lib/GXM.js"></script>
+        
+        <script type="text/javascript">
+            
+//TODO: remove eventually
+var log = function(){
+    if (console && console.log) {
+        for (arg in arguments) {
+            console.log(arguments[arg]);
+        }
+    }
+};
+
+var viewport;
+
+// This object is read out in the test page
+window.btnLogger = {
+    zoomIn: {
+        handlerCalled: false,
+        triggerCalled: false
+    },
+    zoomOut: {
+        handlerCalled: false,
+        triggerCalled: false
+    }
+};
+window.btnNavStates = [];
+
+
+
+Ext.setup({
+    onReady: function(){
+        // OpenLayers specific
+        var map = new OpenLayers.Map({
+            controls: [],
+            allOverlays: true
+        });
+        
+        map.zoomIn = function() {
+            window.btnLogger.zoomIn.triggerCalled = true;
+            OpenLayers.Map.prototype.zoomIn.apply(this, arguments);
+        };
+        map.zoomOut = function() {
+            window.btnLogger.zoomOut.triggerCalled = true;
+            OpenLayers.Map.prototype.zoomOut.apply(this, arguments);
+        };
+        
+        var layer = new OpenLayers.Layer.WMS(
+            "OpenLayers WMS", 
+            "http://vmap0.tiles.osgeo.org/wms/vmap0", 
+            {
+                layers: "basic"
+            }
+        );
+        layer = new OpenLayers.Layer.Vector('vector');
+        
+        map.addLayers([layer]);
+
+        var btnClickCallback = function(btn){
+             window.btnLogger[btn.title].handlerCalled = true;
+             // Ext.Msg.alert('Callback defined in application', 'You tapped the "' + btn.title + '"-button.');
+        };
+        
+        var zoomin = new OpenLayers.Control.ZoomIn();
+        var zoomout = new OpenLayers.Control.ZoomOut();
+
+        var btnZoomIn = new GXM.Button({
+            control: zoomin,
+            map: map,
+            title: 'zoomIn',
+            iconCls: 'add',
+            iconMask: true,
+            handler: Ext.createDelegate(btnClickCallback)
+        });
+        var btnZoomOut = {
+            xtype: 'gxm_button',
+            control: zoomout,
+            map: map,
+            title: 'zoomOut',
+            iconCls: 'minus',
+            iconMask: true,
+            handler: Ext.createDelegate(btnClickCallback)
+        };
+        
+        var nav = new OpenLayers.Control.TouchNavigation();
+        
+        var btnNavigation = {
+            xtype: 'gxm_segmentedbutton',
+            exclusiveGroup: 'working-on-map',
+            map: map,
+            items: [{
+                text: 'Navigation',
+                control: nav,
+                pressed: true,
+                handler: function(btn, evt, activeState){
+                    window.btnNavStates.push((activeState ? 'active' : 'inactive'));
+                    // Ext.Msg.alert('Navigation', 'Navigation is ' + (activeState ? 'active' : 'inactive') + '.');
+                }
+            }]
+        };
+        
+        // create a vector layer for drawing
+        var vector = new OpenLayers.Layer.Vector('Vector Layer', {
+            styleMap: new OpenLayers.StyleMap({
+                temporary: OpenLayers.Util.applyDefaults({
+                    pointRadius: 16
+                }, OpenLayers.Feature.Vector.style.temporary)
+            })
+        });
+        
+        var mapPanel = new GXM.MapPanel({
+            map: map,
+            layers: [vector]
+        });
+        
+        var ctrlDrawPoint = new OpenLayers.Control.DrawFeature(
+            vector, 
+            OpenLayers.Handler.Point
+        );
+        var ctrlDrawLine = new OpenLayers.Control.DrawFeature(
+            vector, 
+            OpenLayers.Handler.Path
+        );
+        var ctrlDrawPoly = new OpenLayers.Control.DrawFeature(
+            vector, 
+            OpenLayers.Handler.Polygon
+        );
+        
+        var btnDigPoint = {
+            control: ctrlDrawPoint,
+            text: 'Point'
+        };
+        var btnDigLine = {
+            control: ctrlDrawLine,
+            text: 'Line'
+        };
+        var btnDigPoly = {
+            control: ctrlDrawPoly,
+            text: 'Poly'
+        };
+        
+        var digGroup = {
+            xtype: 'gxm_segmentedbutton',
+            map: map,
+            exclusiveGroup: 'working-on-map',
+            items: [
+                btnDigPoint,
+                btnDigLine,
+                btnDigPoly
+            ]
+        };
+        
+        viewport  = new Ext.Panel({
+            fullscreen: true,
+            layout: 'fit',
+            ui: 'light',
+            dockedItems: [{
+                xtype: 'toolbar',
+                dock: 'top',
+                items: [
+                    btnZoomIn, 
+                    btnZoomOut, 
+                    {xtype: 'spacer'}, 
+                    btnNavigation
+                ]
+            },{
+                xtype: 'toolbar',
+                dock: 'bottom',
+                items: [
+                    digGroup
+                ]
+            }],
+            items: [
+                mapPanel
+            ]
+        });
+    }
+});
+            
+        </script>
+    </head>
+    <body>
+        <!-- TODO: have content here that describes this example -->
+    </body>
+</html>
\ No newline at end of file



More information about the Commits mailing list