[Commits] r817 - core/trunk/geoext/examples

commits at geoext.org commits at geoext.org
Tue May 19 18:07:32 CEST 2009


Author: tschaub
Date: 2009-05-19 18:07:32 +0200 (Tue, 19 May 2009)
New Revision: 817

Added:
   core/trunk/geoext/examples/layercontainer.html
   core/trunk/geoext/examples/layercontainer.js
Log:
Adding a simple example deomonstrating a layer tree that supports layer ordering via drag-drop.

Added: core/trunk/geoext/examples/layercontainer.html
===================================================================
--- core/trunk/geoext/examples/layercontainer.html	                        (rev 0)
+++ core/trunk/geoext/examples/layercontainer.html	2009-05-19 16:07:32 UTC (rev 817)
@@ -0,0 +1,30 @@
+<html>
+    <head>
+        <title>GeoExt Layer Tree</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"></link>
+        <script src="http://openlayers.org/api/2.8-rc2/OpenLayers.js"></script>
+        <script type="text/javascript" src="../lib/GeoExt.js"></script>
+
+        <script type="text/javascript" src="layercontainer.js"></script>
+
+    </head>
+    <body>
+        <h1>Layer Tree Example</h1>
+        <p>This is example that shows how create a TreePanel with layers
+        from a map.  GeoExt does not provide a LayerTree component.  Instead,
+        to create a tree with nodes that represent layers, create a tree with
+        a LayerContainer at the root, or add LayerNodes directly.</p>
+
+        <p>Note that the js is not minified so it is readable.
+        See <a href="treenodes.js">layernodes.js</a>.</p>
+
+        <div style="position: relative;">
+            <div id="capgrid"></div>
+            <div id="tree"></div>
+            <div id="mappanel"></div>
+        </div>
+    </body>
+</html>

Added: core/trunk/geoext/examples/layercontainer.js
===================================================================
--- core/trunk/geoext/examples/layercontainer.js	                        (rev 0)
+++ core/trunk/geoext/examples/layercontainer.js	2009-05-19 16:07:32 UTC (rev 817)
@@ -0,0 +1,74 @@
+var store, tree, panel;
+Ext.onReady(function() {
+    
+    // create a new WMS capabilities store
+    store = new GeoExt.data.WMSCapabilitiesStore({
+        url: "data/wmscap.xml"
+    });
+    // load the store with records derived from the doc at the above url
+    store.load();
+
+    // create a grid to display records from the store
+    var grid = new Ext.grid.GridPanel({
+        title: "WMS Capabilities",
+        store: store,
+        cm: new Ext.grid.ColumnModel([
+            {header: "Name", dataIndex: "name", sortable: true},
+            {id: "title", header: "Title", dataIndex: "title", sortable: true}
+        ]),
+        sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
+        autoExpandColumn: "title",
+        renderTo: "capgrid",
+        height: 300,
+        width: 350,
+        floating: true,
+        x: 10,
+        y: 0,
+        bbar: ["->", {
+            text: "Add Layer",
+            handler: function() {
+                var record = grid.getSelectionModel().getSelected();
+                if(record) {
+                    var copy = record.copy();
+                    copy.set("layer", record.get("layer"));
+                    copy.get("layer").mergeNewParams({
+                        format: "image/png",
+                        transparent: "true"
+                    });
+                    panel.layers.add(copy);
+                    panel.map.zoomToExtent(
+                        OpenLayers.Bounds.fromArray(copy.get("llbbox"))
+                    );
+                }
+            }
+        }]
+    });
+    
+    // create a map panel
+    panel = new GeoExt.MapPanel({
+        renderTo: "mappanel",
+        width: 350,
+        height: 300,
+        floating: true,
+        x: 570,
+        y: 0
+    });
+    
+    tree = new Ext.tree.TreePanel({
+        renderTo: "tree",
+        root: new GeoExt.tree.LayerContainer({
+            text: 'Map Layers',
+            layerStore: panel.layers,
+            leaf: false,
+            expanded: true
+        }),
+        enableDD: true,
+        width: 170,
+        height: 300,
+        floating: true,
+        x: 380,
+        y: 0
+    });
+    
+
+});



More information about the Commits mailing list