[Commits] r1062 - in sandbox/camptocamp/geobretagne: examples examples/data lib lib/GeoExt/data

commits at geoext.org commits at geoext.org
Fri Jun 12 15:58:25 CEST 2009


Author: bbinet
Date: 2009-06-12 15:58:25 +0200 (Fri, 12 Jun 2009)
New Revision: 1062

Added:
   sandbox/camptocamp/geobretagne/examples/csw.html
   sandbox/camptocamp/geobretagne/examples/csw.js
   sandbox/camptocamp/geobretagne/examples/data/cswcap.xml
   sandbox/camptocamp/geobretagne/lib/GeoExt/data/CSWRecordsReader.js
Modified:
   sandbox/camptocamp/geobretagne/lib/GeoExt.js
Log:
apply patch from ticket #87 which add CSWRecordsReader in geoext (patch from pgiraud)

Added: sandbox/camptocamp/geobretagne/examples/csw.html
===================================================================
--- sandbox/camptocamp/geobretagne/examples/csw.html	                        (rev 0)
+++ sandbox/camptocamp/geobretagne/examples/csw.html	2009-06-12 13:58:25 UTC (rev 1062)
@@ -0,0 +1,24 @@
+<html>
+    <head>
+        <title>GeoExt CSW Example</title>
+
+        <script type="text/javascript" src="http://extjs.cachefly.net/builds/ext-cdn-771.js"></script>
+        <link rel="stylesheet" type="text/css" href="http://extjs.cachefly.net/ext-2.2.1/resources/css/ext-all.css" />
+        <link rel="stylesheet" type="text/css" href="http://extjs.com/deploy/dev/examples/shared/examples.css" />
+        <script src="../../openlayers/lib/OpenLayers.js"></script>
+        <script type="text/javascript" src="../lib/GeoExt.js"></script>
+        
+        <script type="text/javascript" src="csw.js"></script>
+
+    </head>
+    <body>
+        <h1>CSW Example</h1>
+        <p>This example shows how to load a grid with data from a CSW
+        GetRecords request.</p>
+
+        <p>Note that the js is not minified so it is readable.
+        See <a href="csw.js">csw.js</a>.</p>
+
+        <div id="cswgrid"></div>
+    </body>
+</html>

Added: sandbox/camptocamp/geobretagne/examples/csw.js
===================================================================
--- sandbox/camptocamp/geobretagne/examples/csw.js	                        (rev 0)
+++ sandbox/camptocamp/geobretagne/examples/csw.js	2009-06-12 13:58:25 UTC (rev 1062)
@@ -0,0 +1,35 @@
+
+Ext.onReady(function() {
+
+    // create a new store
+    var store = new Ext.data.Store({
+        reader: new GeoExt.data.CSWRecordsReader({
+            fields: ['title', 'subject']
+        })
+    });
+    // create a grid to display records from the store
+    var grid = new Ext.grid.GridPanel({
+        title: "CSW Records",
+        store: store,
+        columns: [
+            {id: 'title', header: "Title", dataIndex: "title", sortable: true},
+            {header: "Subject", dataIndex: "subject", sortable: true, width: 300}
+        ],
+        autoExpandColumn: 'title',
+        renderTo: "cswgrid",
+        height: 300,
+        width: 650
+    });
+
+    var format = new OpenLayers.Format.CSWGetRecords();
+
+    // Load CSW data from a static file for csw GetRecords response
+    var request = OpenLayers.Request.GET({
+        url: "data/cswcap.xml",
+        success : function(response) {
+            // load the store with records derived from response
+            store.loadData(format.read(response.responseText));
+        }
+    });
+
+});

Added: sandbox/camptocamp/geobretagne/examples/data/cswcap.xml
===================================================================
--- sandbox/camptocamp/geobretagne/examples/data/cswcap.xml	                        (rev 0)
+++ sandbox/camptocamp/geobretagne/examples/data/cswcap.xml	2009-06-12 13:58:25 UTC (rev 1062)
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<csw:GetRecordsResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2">
+  <csw:SearchStatus timestamp="2009-06-12T11:01:32" />
+  <csw:SearchResults numberOfRecordsMatched="60" numberOfRecordsReturned="60" elementSet="full" nextRecord="0">
+    <csw:Record xmlns:geonet="http://www.fao.org/geonetwork" xmlns:ows="http://www.opengis.net/ows" xmlns:dct="http://purl.org/dc/terms/" xmlns:dc="http://purl.org/dc/elements/1.1/">
+      <dc:title>Globally threatened species of the world</dc:title>
+      <dc:subject>GEMET 2000
+        biodiversity
+        endangered animal species
+        endangered plant species</dc:subject>
+      <dc:subject>None
+        Biology</dc:subject>
+      <dc:subject>None
+        Global</dc:subject>
+      <dct:abstract>Contains information on animals and plants threatened at the global level.</dct:abstract>
+      <dct:modified>20011220</dct:modified>
+      <dc:creator>GeoNetwork test user</dc:creator>
+      <dc:publisher>GeoNetwork test centre</dc:publisher>
+      <dc:rights>None</dc:rights>
+      <dc:rights>No restrictions</dc:rights>
+      <ows:BoundingBox crs="">
+        <ows:LowerCorner>180.0-90.0</ows:LowerCorner>
+        <ows:UpperCorner>-180.090.0</ows:UpperCorner>
+      </ows:BoundingBox>
+    </csw:Record>
+    <csw:Record xmlns:geonet="http://www.fao.org/geonetwork" xmlns:ows="http://www.opengis.net/ows" xmlns:dc="http://purl.org/dc/elements/1.1/">
+      <dc:title xmlns:dct="http://purl.org/dc/terms/">Natural polar ecosystems</dc:title>
+      <dc:creator xmlns:dct="http://purl.org/dc/terms/">GeoNetwork test user</dc:creator>
+      <dc:subject xmlns:dct="http://purl.org/dc/terms/">Antarctic ecosystem</dc:subject>
+      <dc:subject xmlns:dct="http://purl.org/dc/terms/">Arctic ecosystem</dc:subject>
+      <dc:subject xmlns:dct="http://purl.org/dc/terms/">polar ecosystem</dc:subject>
+      <dc:description xmlns:dct="http://purl.org/dc/terms/">A harmonised database of natural ecosystems in the Circumpolar Arctic, based on published vegetation maps.</dc:description>
+      <dc:publisher xmlns:dct="http://purl.org/dc/terms/">GeoNetwork test centre</dc:publisher>
+      <dc:contributor xmlns:dct="http://purl.org/dc/terms/">Unknown</dc:contributor>
+      <dc:date xmlns:dct="http://purl.org/dc/terms/">2000</dc:date>
+      <dc:type xmlns:dct="http://purl.org/dc/terms/">Maps and graphics</dc:type>
+      <dc:format xmlns:dct="http://purl.org/dc/terms/">Web page</dc:format>
+      <dc:identifier xmlns:dct="http://purl.org/dc/terms/">e2987cb0-3090-4a31-b90f-d3d024735ff7</dc:identifier>
+      <dc:source xmlns:dct="http://purl.org/dc/terms/">Compiled from published vegetation maps of the 8 circumpolar countries.</dc:source>
+      <dc:language xmlns:dct="http://purl.org/dc/terms/">en</dc:language>
+      <dc:relation xmlns:dct="http://purl.org/dc/terms/">Unknown</dc:relation>
+      <dc:coverage xmlns:dct="http://purl.org/dc/terms/">North 90, South -90, East 180, West -180.  (Global)</dc:coverage>
+      <dc:rights xmlns:dct="http://purl.org/dc/terms/">Access constraints: None.  Usage constraints: No restrictions</dc:rights>
+      <dct:modified xmlns:dct="http://purl.org/dc/terms/">2005-03-31T19:13:30</dct:modified>
+      <ows:BoundingBox crs="urn:x-ogc:def:crs:EPSG:6.11:4326">
+        <ows:LowerCorner>-90 -180</ows:LowerCorner>
+        <ows:UpperCorner>90 180</ows:UpperCorner>
+      </ows:BoundingBox>
+    </csw:Record>
+    <csw:Record xmlns:ows="http://www.opengis.net/ows" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:dct="http://purl.org/dc/terms/" xmlns:dc="http://purl.org/dc/elements/1.1/">
+      <dc:identifier>8dfef0e6-969e-4327-b292-5e7047f11808</dc:identifier>
+      <dc:title>Hydrological basins in Europe</dc:title>
+      <dc:subject>watersheds</dc:subject>
+      <dc:subject>Europe</dc:subject>
+      <dct:abstract>Major hydrological basins and their sub-basins. This dataset divides the Europe in zones.</dct:abstract>
+      <dc:language>en</dc:language>
+      <dc:source>None.</dc:source>
+      <ows:BoundingBox crs="::">
+        <ows:LowerCorner>51.1 -34.6</ows:LowerCorner>
+        <ows:UpperCorner>-17.3 38.2</ows:UpperCorner>
+      </ows:BoundingBox>
+      <dc:URI>resources.get?id=&amp;fname=large_s.png&amp;access=public</dc:URI>
+    </csw:Record>
+    <csw:Record xmlns:ows="http://www.opengis.net/ows" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:dct="http://purl.org/dc/terms/" xmlns:dc="http://purl.org/dc/elements/1.1/">
+      <dc:identifier>bd7b3827-d6c4-4bd1-bac3-8e0e388e7a23</dc:identifier>
+      <dc:title>Cours d'eau</dc:title>
+      <dc:type>dataset</dc:type>
+      <dc:format />
+      <dct:abstract />
+      <dc:language />
+      <dc:source />
+      <ows:BoundingBox crs="::">
+        <ows:LowerCorner>180 -90</ows:LowerCorner>
+        <ows:UpperCorner>-180 90</ows:UpperCorner>
+      </ows:BoundingBox>
+      <dc:format />
+      <dc:URI>http://services.sandre.eaufrance.fr/geo/zonage?</dc:URI>
+    </csw:Record>
+  </csw:SearchResults>
+</csw:GetRecordsResponse>
+

Added: sandbox/camptocamp/geobretagne/lib/GeoExt/data/CSWRecordsReader.js
===================================================================
--- sandbox/camptocamp/geobretagne/lib/GeoExt/data/CSWRecordsReader.js	                        (rev 0)
+++ sandbox/camptocamp/geobretagne/lib/GeoExt/data/CSWRecordsReader.js	2009-06-12 13:58:25 UTC (rev 1062)
@@ -0,0 +1,60 @@
+/* Copyright (C) 2008-2009 The Open Source Geospatial Foundation
+ * Published under the BSD license.
+ * See http://geoext.org/svn/geoext/core/trunk/license.txt for the full text
+ * of the license.
+ *
+ * pending approval */
+
+/**
+ * @include OpenLayers/Format/CSWGetRecords.js
+ */
+
+/** api: (define)
+ *  module = GeoExt.data
+ *  class = CSWRecordsReader
+ *  base_link = `Ext.data.DataReader <http://extjs.com/deploy/dev/docs/?class=Ext.data.DataReader>`_
+ */
+Ext.namespace("GeoExt.data");
+
+/** api: constructor
+ *  .. class:: CSWRecordsReader(meta, recordType)
+ *  
+ *      :param meta: ``Object`` Reader configuration.
+ *      :param recordType: ``Array | Ext.data.Record`` An array of field
+ *          configuration objects or a record object.  Default is
+ *          :class:`Ext.data.Record`.
+ *   
+ *      Data reader class to create an array of
+ *      objects from a CSW GetRecords response.
+ */
+GeoExt.data.CSWRecordsReader = function(meta, recordType) {
+    meta = meta || {};
+    if(!meta.format) {
+        meta.format = new OpenLayers.Format.CSWGetRecords();
+    }
+    if(!meta.root) {
+        meta.root = 'records';
+    }
+
+    // FIXME
+    // There may be information of interest in the getRecords response
+    // ie. SearchResults.numberOfRecordsReturned
+    // or SearchResults.numberOfRecordsMatched 
+
+    GeoExt.data.CSWRecordsReader.superclass.constructor.call(
+        this, meta, recordType
+    );
+};
+
+Ext.extend(GeoExt.data.CSWRecordsReader, Ext.data.JsonReader, {
+
+    /** private: method[read]
+     *  :param reponse: ``OpenLayers.Protocol.Response`` The OpenLayers protocol
+     *      response as returned by the protocol read method.
+     *  :return: ``Object`` A data block which is used by an ``Ext.data.Store``
+     *      as a cache of ``Ext.data.Record`` objects.
+     */
+    read: function(response) {
+        return this.readRecords(response.data);
+    }
+});

Modified: sandbox/camptocamp/geobretagne/lib/GeoExt.js
===================================================================
--- sandbox/camptocamp/geobretagne/lib/GeoExt.js	2009-06-12 12:56:49 UTC (rev 1061)
+++ sandbox/camptocamp/geobretagne/lib/GeoExt.js	2009-06-12 13:58:25 UTC (rev 1062)
@@ -68,6 +68,7 @@
             "GeoExt/data/ScaleStore.js",
             "GeoExt/data/WMSCapabilitiesReader.js",
             "GeoExt/data/WMSCapabilitiesStore.js",
+            "GeoExt/data/CSWRecordsReader.js",
             "GeoExt/widgets/Action.js",
             "GeoExt/data/ProtocolProxy.js",
             "GeoExt/widgets/LayerOpacitySlider.js",



More information about the Commits mailing list