[Commits] r1621 - in sandbox/cmoullet/ux/LayerManager: examples ux ux/data ux/utils ux/widgets

commits at geoext.org commits at geoext.org
Mon Dec 28 13:08:01 CET 2009


Author: cmoullet
Date: 2009-12-28 13:08:01 +0100 (Mon, 28 Dec 2009)
New Revision: 1621

Added:
   sandbox/cmoullet/ux/LayerManager/ux/utils/
   sandbox/cmoullet/ux/LayerManager/ux/utils/flash.js
Modified:
   sandbox/cmoullet/ux/LayerManager/examples/LayerManagerExample.html
   sandbox/cmoullet/ux/LayerManager/ux/data/Import.js
   sandbox/cmoullet/ux/LayerManager/ux/widgets/LayerManagerExportPanel.js
   sandbox/cmoullet/ux/LayerManager/ux/widgets/LayerManagerImportPanel.js
Log:
Flash detection 
Start import dev

Modified: sandbox/cmoullet/ux/LayerManager/examples/LayerManagerExample.html
===================================================================
--- sandbox/cmoullet/ux/LayerManager/examples/LayerManagerExample.html	2009-12-28 10:37:43 UTC (rev 1620)
+++ sandbox/cmoullet/ux/LayerManager/examples/LayerManagerExample.html	2009-12-28 12:08:01 UTC (rev 1621)
@@ -9,6 +9,7 @@
     <script type="text/javascript" src="../../../trunk/geoext/lib/GeoExt.js"></script>
     <script type="text/javascript" src="../ux/downloadify/js/swfobject.js"></script>
     <script type="text/javascript" src="../ux/downloadify/js/downloadify.min.js"></script>
+    <script type="text/javascript" src="../ux/utils/flash.js"></script>
     <script type="text/javascript" src="../ux/data/FormatStore.js"></script>
     <script type="text/javascript" src="../ux/data/Export.js"></script>
     <script type="text/javascript" src="../ux/widgets/LayerManagerExportPanel.js"></script>

Modified: sandbox/cmoullet/ux/LayerManager/ux/data/Import.js
===================================================================
--- sandbox/cmoullet/ux/LayerManager/ux/data/Import.js	2009-12-28 10:37:43 UTC (rev 1620)
+++ sandbox/cmoullet/ux/LayerManager/ux/data/Import.js	2009-12-28 12:08:01 UTC (rev 1621)
@@ -10,41 +10,19 @@
 
 // layer: optional {<OpenLayers.Layer>}
 // features: optional: {Array(<OpenLayers.Feature.Vector>)}
-GeoExt.ux.data.Import = function(map, format, layer, features) {
-    var exportLayers = [];
-    var exportFeatures = [];
+GeoExt.ux.data.Import = function(map, layer, format, filecontent, features) {
+    var importFeatures = [];
 
-    if (layers) {
-        exportLayers = layers;
-    } else {
-        for (var i = 0; i < map.layers.length; i++) {
-            var layer = map.layers[i];
-            if (layer.CLASS_NAME) {
-                if (GeoExt.ux.data.Export.isLayerSupported(layer.CLASS_NAME)) {
-                    exportLayers.push(layer);
-                }
-            }
+    if (format && filecontent) {
+        importFeatures = features;
+        if (format == 'KML') {
+            var kmlReader = new OpenLayers.Format.KML();
+        }else {
+            return 'Format ' + format + ' not supported. Patch welcome !';
         }
     }
 
     if (features) {
-        exportFeatures = features;
-    } else {
-        for (var j = 0; j < exportLayers.length; j++) {
-            var exportLayer = exportLayers[j];
-            if (exportLayer.features) {
-                for (var k = 0; k < exportLayer.features.length; k++) {
-                    exportFeatures.push(exportLayer.features[k]);
-                }
-            }
-        }
+        importFeatures = features;
     }
-
-    if (format == 'KML') {
-        var kmlWriter = new OpenLayers.Format.KML(GeoExt.ux.data.formats.getFormatExportConfig(format));
-        return kmlWriter.write(exportFeatures);
-    } else {
-        return 'Format ' + format + ' not supported. Patch welcome !';
-    }
-
 };
\ No newline at end of file

Added: sandbox/cmoullet/ux/LayerManager/ux/utils/flash.js
===================================================================
--- sandbox/cmoullet/ux/LayerManager/ux/utils/flash.js	                        (rev 0)
+++ sandbox/cmoullet/ux/LayerManager/ux/utils/flash.js	2009-12-28 12:08:01 UTC (rev 1621)
@@ -0,0 +1,49 @@
+function GetFlashVersion() {
+    var is_ie = navigator.appVersion.toLowerCase().indexOf("msie") != -1;
+    var is_win = navigator.appVersion.toLowerCase().indexOf("win") != -1;
+    var is_opera = navigator.userAgent.toLowerCase().indexOf("opera") != -1;
+    for (i = 12; i > 0; i--) {
+        var flash_version = (is_ie && is_win && !is_opera) ? GetFlashVersionActivex(i) : GetFlashVersionPlugin();
+        if (flash_version != 0) return flash_version;
+    }
+    return 0.0;
+}
+
+function GetFlashVersionActivex(i) {
+    try {
+        var control = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.' + i);
+        var version = control.GetVariable("$version");
+        var temp = version.split(" ");
+        var version_array = temp[1].split(",");
+        return parseFloat(version_array[0] + "." + version_array[2]);
+    }
+    catch(e) {
+        return 0.0;
+    }
+}
+
+function GetFlashVersionPlugin() {
+    var flash_version = 0.0;
+    if (navigator.plugins != null && navigator.plugins.length > 0) {
+        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
+            var plugin_name = navigator.plugins["Shockwave Flash 2.0"] ? "Shockwave Flash 2.0" : "Shockwave Flash";
+            var flash_desc = navigator.plugins[plugin_name].description;
+            var desc_segments = flash_desc.split(" ");
+            var major_segments = desc_segments[2].split(".");
+            var major = major_segments[0];
+            var minor_segments = (desc_segments[3] != "") ? desc_segments[3].split("r") : desc_segments[4].split("r");
+            var minor = minor_segments[1] > 0 ? minor_segments[1] : 0;
+            flash_version = parseFloat(major + "." + minor);
+        }
+        else {
+            flash_version = -1;
+        }
+    }
+    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flash_version = 4;
+    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flash_version = 3;
+    else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flash_version = 2;
+    else {
+        flash_version = -1;
+    }
+    return flash_version;
+}
\ No newline at end of file

Modified: sandbox/cmoullet/ux/LayerManager/ux/widgets/LayerManagerExportPanel.js
===================================================================
--- sandbox/cmoullet/ux/LayerManager/ux/widgets/LayerManagerExportPanel.js	2009-12-28 10:37:43 UTC (rev 1620)
+++ sandbox/cmoullet/ux/LayerManager/ux/widgets/LayerManagerExportPanel.js	2009-12-28 12:08:01 UTC (rev 1621)
@@ -13,6 +13,7 @@
     formatCombo: null,
     defaultFormat: 'KML',
     downloadService: null,
+    exportLinkBox: null,
 
     initComponent: function() {
 
@@ -31,6 +32,13 @@
 
         this.formatCombo.setValue(this.defaultFormat);
 
+        this.exportLinkBox = new Ext.BoxComponent({
+            id: 'exportlink',
+            autoEl: {
+                html: '<a href=""></a>'
+            }
+        });
+
         this.items = [
             {
                 layout: 'form',
@@ -102,13 +110,25 @@
                                         if (Ext.isIE) {
                                             GeoExt.ux.data.Export.OpenWindowIE();
                                         } else if (Ext.isGecko) {
-                                            GeoExt.ux.data.Export.OpenWindowDownloadify();
-                                        } else if (Ext.isChrome ) {
-                                            GeoExt.ux.data.Export.OpenWindowDownloadify();
-                                        } else if (Ext.isSafari ) {
-                                            GeoExt.ux.data.Export.OpenWindowDownloadify();
+                                            if (GetFlashVersion() > 10.00) {
+                                                GeoExt.ux.data.Export.OpenWindowDownloadify();
+                                            } else {
+                                                this.exportLinkBox.getEl().dom.innerHTML = '<a href="data:text/xml,' + GeoExt.ux.data.Export.content.replace(/"/g, '\'') + '" target="new">Right mouse click, Save As...</a>';
+                                            }
+                                        } else if (Ext.isChrome) {
+                                            if (GetFlashVersion() > 10.00) {
+                                                GeoExt.ux.data.Export.OpenWindowDownloadify();
+                                            } else {
+                                                alert('Please install Flash 10');
+                                            }
+                                        } else if (Ext.isSafari) {
+                                            if (GetFlashVersion() > 10.00) {
+                                                GeoExt.ux.data.Export.OpenWindowDownloadify();
+                                            } else {
+                                                alert('Please install Flash 10');
+                                            }
                                         } else {
-                                            alert('Your browser is not supported. Patch welcome !')
+                                            alert('Your browser is not supported. Patch welcome !');
                                         }
                                     }
                                     if (Ext.getCmp('layermanagerwindow')) {
@@ -121,7 +141,26 @@
                         ]
                     }
                 ]
+            },
+            {
+                layout: 'column',
+                border: false,
+                defaults:{
+                    layout:'form',
+                    border:false,
+                    bodyStyle:'padding:5px 5px 5px 5px'
+                },
+                items: [
+                    {
+                        columnWidth: 1,
+                        bodyCfg: {tag:'center'},
+                        items: [
+                            this.exportLinkBox
+                        ]
+                    }
+                ]
             }
+
         ];
         GeoExt.ux.LayerManagerExportPanel.superclass.initComponent.call(this);
     }

Modified: sandbox/cmoullet/ux/LayerManager/ux/widgets/LayerManagerImportPanel.js
===================================================================
--- sandbox/cmoullet/ux/LayerManager/ux/widgets/LayerManagerImportPanel.js	2009-12-28 10:37:43 UTC (rev 1620)
+++ sandbox/cmoullet/ux/LayerManager/ux/widgets/LayerManagerImportPanel.js	2009-12-28 12:08:01 UTC (rev 1621)
@@ -103,7 +103,8 @@
                                     if (document.getElementById('fileselector').value == "") {
                                         alert(OpenLayers.i18n('Select a file to import'));
                                     } else {
-                                        alert(document.getElementById('fileselector').value);
+                                        document.getElementById('fileselector').files.item(0).getAsText('UTF-8')
+                                        //alert(document.getElementById('fileselector').value);
                                     }
                                 },
                                 scope: this



More information about the Commits mailing list