[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