[Commits] r1254 - in apps/opengeo/geoexplorer/branches/0.1.x: . build src src/html src/script src/script/app src/script/app/GeoExplorer src/script/ux src/theme src/theme/app src/theme/app/img
commits at geoext.org
commits at geoext.org
Tue Jul 14 21:54:24 CEST 2009
Author: tschaub
Date: 2009-07-14 21:54:24 +0200 (Tue, 14 Jul 2009)
New Revision: 1254
Added:
apps/opengeo/geoexplorer/branches/0.1.x/build/build.xml
apps/opengeo/geoexplorer/branches/0.1.x/build/jsbuild.cfg
apps/opengeo/geoexplorer/branches/0.1.x/src/
apps/opengeo/geoexplorer/branches/0.1.x/src/html/
apps/opengeo/geoexplorer/branches/0.1.x/src/html/about.html
apps/opengeo/geoexplorer/branches/0.1.x/src/html/index.html
apps/opengeo/geoexplorer/branches/0.1.x/src/script/
apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/
apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/GeoExplorer.js
apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/GeoExplorer/
apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/loader.js
apps/opengeo/geoexplorer/branches/0.1.x/src/script/ux/
apps/opengeo/geoexplorer/branches/0.1.x/src/script/ux/RowExpander.js
apps/opengeo/geoexplorer/branches/0.1.x/src/theme/
apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/
apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/about.css
apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/geoexplorer.css
apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/ie.css
apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/img/
Removed:
apps/opengeo/geoexplorer/branches/0.1.x/about.html
apps/opengeo/geoexplorer/branches/0.1.x/build/Makefile
apps/opengeo/geoexplorer/branches/0.1.x/build/build.cfg
apps/opengeo/geoexplorer/branches/0.1.x/build/index.html
apps/opengeo/geoexplorer/branches/0.1.x/debug.html
apps/opengeo/geoexplorer/branches/0.1.x/lib/
apps/opengeo/geoexplorer/branches/0.1.x/script/
apps/opengeo/geoexplorer/branches/0.1.x/theme/
Modified:
apps/opengeo/geoexplorer/branches/0.1.x/build/readme.txt
apps/opengeo/geoexplorer/branches/0.1.x/readme-dev.txt
Log:
new structure
Deleted: apps/opengeo/geoexplorer/branches/0.1.x/about.html
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/about.html 2009-07-14 17:43:57 UTC (rev 1253)
+++ apps/opengeo/geoexplorer/branches/0.1.x/about.html 2009-07-14 19:54:24 UTC (rev 1254)
@@ -1,36 +0,0 @@
-<html>
- <head>
- <title>About GeoExplorer</title>
- <link rel="stylesheet" type="text/css" href="theme/app/about.css"/>
- </head>
- <body>
- <div class="logo"></div>
- <h2> GeoExplorer </h2>
- <div class="versioninfo">Version 0.1</div>
- <h3> Engineering & Design by OpenGeo </h3>
- <a href="http://opengeo.org/">http://opengeo.org/</a>
- © 2009, OpenGeo under the BSD license.
-
- <h3> GeoExt Framework </h3>
- <a href="http://geoext.org/">http://geoext.org/</a>
- © 2009, OSGeo under the BSD license.
-
- <h3> GeoSilk Icons </h3>
- <a href="http://projects.opengeo.org/geosilk/">http://projects.opengeo.org/geosilk/</a>
- © 2009, OpenGeo under CC-BY 3.0.
-
- <h3> Silk Icons </h3>
- <a href="http://famfamfam.com/lab/icons/silk/">http://famfamfam.com/lab/icons/silk/</a>
- © Mark James under CC-BY 3.0.
-
- <h3> Contributors </h3>
- <ul>
- <li>Tim Schaub</li>
- <li>David Winslow</li>
- <li>Sebastian Benthall</li>
- <li>Andreas Hocevar</li>
- <li>Tim Coulter</li>
- <li>Rolando Peñate</li>
- </ul>
- </body>
-</html>
Deleted: apps/opengeo/geoexplorer/branches/0.1.x/build/Makefile
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/build/Makefile 2009-07-14 17:43:57 UTC (rev 1253)
+++ apps/opengeo/geoexplorer/branches/0.1.x/build/Makefile 2009-07-14 19:54:24 UTC (rev 1254)
@@ -1,41 +0,0 @@
-# Makefile for GeoExplorer apps
-
-APP_NAME = GeoExplorer
-ZIP_NAME = $(APP_NAME).zip
-
-.PHONEY: help clean app zip
-
-help:
- @echo "Please use 'make <target>' where <target> is one of"
- @echo " app to make a standalone dir of app resources"
- @echo " zip to make a zip archive of a standalone app"
- @echo
- @echo "Example use:"
- @echo " make app"
- @echo " make app APP_NAME=MyApp"
- @echo " make zip"
- @echo " make zip ZIP_NAME=MyZip.zip"
-
-clean:
- -rm -rf $(APP_NAME)
- -rm -f $(ZIP_NAME)
-
-app:
- @echo "Building the application."
- mkdir -p $(APP_NAME)/script $(APP_NAME)/theme
-
- jsbuild build.cfg -v -o $(APP_NAME)/script/
-
- svn export --force ../theme/app $(APP_NAME)/theme/app
- svn export --force ../externals/openlayers/theme/default/ $(APP_NAME)/theme/ol
- svn export --force ../externals/geoext/resources $(APP_NAME)/theme/gx
-
- cp index.html $(APP_NAME)
- cp ../about.html $(APP_NAME)
- cp ../license.txt $(APP_NAME)
- cp readme.txt $(APP_NAME)
-
-zip: clean app
- @echo "Archiving the application."
- zip $(ZIP_NAME) -r $(APP_NAME)
-
Deleted: apps/opengeo/geoexplorer/branches/0.1.x/build/build.cfg
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/build/build.cfg 2009-07-14 17:43:57 UTC (rev 1253)
+++ apps/opengeo/geoexplorer/branches/0.1.x/build/build.cfg 2009-07-14 19:54:24 UTC (rev 1254)
@@ -1,71 +0,0 @@
-[GeoExt.js]
-root = ../externals/geoext/lib
-license = ../externals/geoext/build/geoext-license.js
-
-include =
- GeoExt/data/WMSCapabilitiesStore.js
- GeoExt/data/ScaleStore.js
- GeoExt/widgets/Action.js
- GeoExt/widgets/LegendPanel.js
- GeoExt/widgets/LegendWMS.js
- GeoExt/widgets/MapPanel.js
- GeoExt/widgets/Popup.js
- GeoExt/widgets/tree/LayerContainer.js
- GeoExt/widgets/ZoomSlider.js
-
-exclude =
- GeoExt.js
- GeoExt/SingleFile.js
-
-
-[OpenLayers.js]
-root = ../externals/openlayers/lib
-license = ../externals/openlayers/build/license.txt
-
-first =
- OpenLayers/SingleFile.js
- OpenLayers.js
- OpenLayers/BaseTypes.js
- OpenLayers/BaseTypes/Class.js
- OpenLayers/Util.js
- OpenLayers/Popup.js
-
-include =
- OpenLayers/Map.js
- OpenLayers/Rule.js
- OpenLayers/StyleMap.js
- OpenLayers/Handler/Path.js
- OpenLayers/Handler/Polygon.js
- OpenLayers/Control/PanPanel.js
- OpenLayers/Control/ZoomPanel.js
- OpenLayers/Control/Navigation.js
- OpenLayers/Control/NavigationHistory.js
- OpenLayers/Control/Measure.js
- OpenLayers/Control/ScaleLine.js
- OpenLayers/Control/WMSGetFeatureInfo.js
- OpenLayers/Format/GML.js
- OpenLayers/Format/WMSCapabilities/v1_1_0.js
- OpenLayers/Format/WMSCapabilities/v1_1_1.js
- OpenLayers/Format/WMSGetFeatureInfo.js
- OpenLayers/Layer/WMS.js
- OpenLayers/Layer/Vector.js
- OpenLayers/Renderer/SVG.js
- OpenLayers/Renderer/VML.js
- OpenLayers/Renderer/Canvas.js
- OpenLayers/Request/XMLHttpRequest.js
-
-exclude =
- OpenLayers/Popup/AnchoredBubble.js
-
-[GeoExplorer.js]
-root = ../lib
-license = license.js
-
-exclude =
- Ext/grid/RowExpander.js
-
-[ExtUx.js]
-root = ../lib
-license = ext-license.js
-include =
- Ext/grid/RowExpander.js
\ No newline at end of file
Added: apps/opengeo/geoexplorer/branches/0.1.x/build/build.xml
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/build/build.xml (rev 0)
+++ apps/opengeo/geoexplorer/branches/0.1.x/build/build.xml 2009-07-14 19:54:24 UTC (rev 1254)
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="GeoExplorer" default="dist" basedir=".">
+
+ <description>
+ GeoExplorer Build File
+ </description>
+
+ <property name="src" location="../src"/>
+ <property name="externals" location="../externals"/>
+ <property name="build" location="GeoExplorer"/>
+
+ <target name="init">
+ <tstamp/>
+ <mkdir dir="${build}"/>
+ </target>
+
+ <target name="dev" depends="clean, init" description="set up development build">
+ <echo>Setting up development build.</echo>
+
+ <filterset id="dev-replacements">
+ <filter token="title" value="GeoExplorer (debug)"/>
+ <!-- Ext Resources -->
+ <filter token="ext-all.js" value="ext-all-debug.js"/>
+ <!-- OpenLayers Resources -->
+ <filter token="ol-style.css" value="../../externals/openlayers/theme/default/style.css"/>
+ <filter token="OpenLayers.js" value="../../externals/openlayers/lib/OpenLayers.js"/>
+ <!-- GeoExt Resources -->
+ <filter token="geoext-all.css" value="../../externals/geoext/resources/css/geoext-all-debug.css"/>
+ <filter token="gxtheme-gray.css" value="../../externals/geoext/resources/css/gxtheme-gray.css"/>
+ <filter token="GeoExt.js" value="../../externals/geoext/lib/GeoExt.js"/>
+ <!-- GeoExplorer Resources -->
+ <filter token="theme-dir" value="../../src/theme/app"/>
+ <filter token="GeoExplorer.js" value="../../src/script/app/loader.js"/>
+ <filter token="ux.js" value="../../src/script/ux/RowExpander.js"/>
+ <filter token="blank.gif" value="../../src/theme/app/img/blank.gif"/>
+ </filterset>
+
+ <copy file="${src}/html/index.html" todir="${build}">
+ <filterset refid="dev-replacements"/>
+ </copy>
+ <copy file="${src}/html/about.html" todir="${build}">
+ <filterset refid="dev-replacements"/>
+ </copy>
+
+ </target>
+
+ <target name="jsbuild" depends="init" description="concatenate JavaScript source">
+ <echo>Concatenating JavaScript.</echo>
+ <mkdir dir="${build}/script"/>
+ <exec executable="jsbuild" failonerror="true">
+ <arg line="jsbuild.cfg -v"/>
+ <arg value="-o"/>
+ <arg path="${build}/script"/>
+ </exec>
+ </target>
+
+ <target name="dist" depends="clean, init, jsbuild" description="prepare app for distribution">
+ <echo>Preparing for distribution.</echo>
+
+ <copy todir="${build}/theme/app">
+ <fileset dir="${src}/theme/app">
+ <!-- .svn excluded by default -->
+ </fileset>
+ </copy>
+
+ <copy todir="${build}/theme/ol">
+ <fileset dir="${externals}/openlayers/theme/default">
+ <!-- .svn excluded by default -->
+ </fileset>
+ </copy>
+
+ <copy todir="${build}/theme/gx">
+ <fileset dir="${externals}/geoext/resources">
+ <!-- .svn excluded by default -->
+ </fileset>
+ </copy>
+
+ <filterset id="dist-replacements">
+ <filter token="title" value="GeoExplorer"/>
+ <!-- Ext Resources -->
+ <filter token="ext-all.js" value="ext-all.js"/>
+ <!-- OpenLayers Resources -->
+ <filter token="ol-style.css" value="theme/ol/style.css"/>
+ <filter token="OpenLayers.js" value="script/OpenLayers.js"/>
+ <!-- GeoExt Resources -->
+ <filter token="geoext-all.css" value="theme/gx/css/geoext-all-debug.css"/>
+ <filter token="gxtheme-gray.css" value="theme/gx/css/gxtheme-gray.css"/>
+ <filter token="GeoExt.js" value="script/GeoExt.js"/>
+ <!-- GeoExplorer Resources -->
+ <filter token="theme-dir" value="theme/app"/>
+ <filter token="GeoExplorer.js" value="script/GeoExplorer.js"/>
+ <filter token="ux.js" value="script/ux.js"/>
+ <filter token="blank.gif" value="theme/app/img/blank.gif"/>
+ </filterset>
+
+ <copy file="${src}/html/index.html" todir="${build}">
+ <filterset refid="dist-replacements"/>
+ </copy>
+ <copy file="${src}/html/about.html" todir="${build}">
+ <filterset refid="dist-replacements"/>
+ </copy>
+
+ </target>
+
+ <target name="zip" depends="dist" description="create zip archive of app">
+ <echo>Preparing zip archive.</echo>
+ <zip destfile="GeoExplorer.zip">
+ <zipfileset dir="${build}" prefix="GeoExplorer"/>
+ </zip>
+ </target>
+
+ <target name="clean" description="remove previous build">
+ <delete dir="${build}"/>
+ </target>
+
+</project>
+
Deleted: apps/opengeo/geoexplorer/branches/0.1.x/build/index.html
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/build/index.html 2009-07-14 17:43:57 UTC (rev 1253)
+++ apps/opengeo/geoexplorer/branches/0.1.x/build/index.html 2009-07-14 19:54:24 UTC (rev 1254)
@@ -1,70 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
- <head>
- <title>GeoExplorer</title>
- <link rel="shortcut icon" href="theme/app/img/favicon.ico"/>
-
- <!-- Ext resources -->
- <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.cachefly.net/ext-2.2.1/resources/css/xtheme-gray.css" />
- <script src="http://extjs.cachefly.net/ext-2.2.1/adapter/ext/ext-base.js"></script>
- <script src="http://extjs.cachefly.net/ext-2.2.1/ext-all.js"></script>
- <script src="script/ExtUx.js"></script>
-
- <!-- OpenLayers resources -->
- <link rel="stylesheet" type="text/css" href="theme/ol/style.css" />
- <script src="script/OpenLayers.js"></script>
-
- <!-- GeoExt resources -->
- <link rel="stylesheet" type="text/css" href="theme/gx/css/geoext-all-debug.css" />
- <link rel="stylesheet" type="text/css" href="theme/gx/css/gxtheme-gray.css" />
- <script type="text/javascript" src="script/GeoExt.js"></script>
-
- <!-- GeoExplorer resources -->
- <link rel="stylesheet" type="text/css" href="theme/app/geoexplorer.css" />
- <!--[if IE]><link rel="stylesheet" type="text/css" href="theme/app/ie.css"/><![endif]-->
- <script src="script/GeoExplorer.js"></script>
-
- <script>
- Ext.BLANK_IMAGE_URL = "theme/app/img/blank.gif";
- var app = new GeoExplorer({
-
- /**
- * The application loads capabilities from a single WMS. The
- * ows value below is an absolute URL for this WMS. Because the
- * application loads capabilities from a different host than the
- * one that serves this application, you need to configure a
- * proxy to have the application work.
- *
- * If you have a WMS running on the same origin as this application
- * you can use a relative URL and remove the proxy property below.
- */
- ows: "http://demo.opengeo.org/geoserver/wms",
-
- /**
- * If you do not have a WMS running on the same host that serves
- * this application, you need to set up a proxy. For a proxy
- * that works with mod_python, see the following:
- * http://svn.opengeo.org/util/proxy/proxy.py
- *
- * If you do have a WMS on the same origin as this application,
- * provide a relative URL for the WMS above and comment out this
- * proxy property below.
- */
- proxy: "/proxy/?url=",
-
- map: {
- layers: [{
- name: "topp:bluemarble",
- title: "Global Imagery"
- }],
- center: [-96.7, 37.6],
- zoom: 4
- }
- });
- </script>
-
- </head>
- <body>
- </body>
-</html>
Copied: apps/opengeo/geoexplorer/branches/0.1.x/build/jsbuild.cfg (from rev 1253, apps/opengeo/geoexplorer/branches/0.1.x/build/build.cfg)
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/build/jsbuild.cfg (rev 0)
+++ apps/opengeo/geoexplorer/branches/0.1.x/build/jsbuild.cfg 2009-07-14 19:54:24 UTC (rev 1254)
@@ -0,0 +1,72 @@
+[GeoExt.js]
+root = ../externals/geoext/lib
+license = ../externals/geoext/build/geoext-license.js
+
+include =
+ GeoExt/data/WMSCapabilitiesStore.js
+ GeoExt/data/ScaleStore.js
+ GeoExt/widgets/Action.js
+ GeoExt/widgets/LegendPanel.js
+ GeoExt/widgets/LegendWMS.js
+ GeoExt/widgets/MapPanel.js
+ GeoExt/widgets/Popup.js
+ GeoExt/widgets/tree/LayerContainer.js
+ GeoExt/widgets/ZoomSlider.js
+
+exclude =
+ GeoExt.js
+ GeoExt/SingleFile.js
+
+
+[OpenLayers.js]
+root = ../externals/openlayers/lib
+license = ../externals/openlayers/build/license.txt
+
+first =
+ OpenLayers/SingleFile.js
+ OpenLayers.js
+ OpenLayers/BaseTypes.js
+ OpenLayers/BaseTypes/Class.js
+ OpenLayers/Util.js
+ OpenLayers/Popup.js
+
+include =
+ OpenLayers/Map.js
+ OpenLayers/Rule.js
+ OpenLayers/StyleMap.js
+ OpenLayers/Handler/Path.js
+ OpenLayers/Handler/Polygon.js
+ OpenLayers/Control/PanPanel.js
+ OpenLayers/Control/ZoomPanel.js
+ OpenLayers/Control/Navigation.js
+ OpenLayers/Control/NavigationHistory.js
+ OpenLayers/Control/Measure.js
+ OpenLayers/Control/ScaleLine.js
+ OpenLayers/Control/WMSGetFeatureInfo.js
+ OpenLayers/Format/GML.js
+ OpenLayers/Format/WMSCapabilities/v1_1_0.js
+ OpenLayers/Format/WMSCapabilities/v1_1_1.js
+ OpenLayers/Format/WMSGetFeatureInfo.js
+ OpenLayers/Layer/WMS.js
+ OpenLayers/Layer/Vector.js
+ OpenLayers/Renderer/SVG.js
+ OpenLayers/Renderer/VML.js
+ OpenLayers/Renderer/Canvas.js
+ OpenLayers/Request/XMLHttpRequest.js
+
+exclude =
+ OpenLayers/Popup/AnchoredBubble.js
+
+[GeoExplorer.js]
+root = ../src/script/app
+license = license.js
+
+first =
+ GeoExplorer.js
+
+exclude =
+ loader.js
+
+[ux.js]
+root = ../src/script/ux
+license = ext-license.js
Property changes on: apps/opengeo/geoexplorer/branches/0.1.x/build/jsbuild.cfg
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: apps/opengeo/geoexplorer/branches/0.1.x/build/readme.txt
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/build/readme.txt 2009-07-14 17:43:57 UTC (rev 1253)
+++ apps/opengeo/geoexplorer/branches/0.1.x/build/readme.txt 2009-07-14 19:54:24 UTC (rev 1254)
@@ -41,7 +41,7 @@
the code below (assuming you are running it with a local GeoServer)::
var app = new GeoExplorer({
- ows: "/geoserver/wms",
+ wms: "/geoserver/wms",
map: {
layers: [{
name: "topp:bluemarble",
@@ -56,7 +56,7 @@
displayed, edit your application config to read something like the code below::
var app = new GeoExplorer({
- ows: "/geoserver/wms",
+ wms: "/geoserver/wms",
map: {
layers: [{
name: "topp:bluemarble",
Deleted: apps/opengeo/geoexplorer/branches/0.1.x/debug.html
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/debug.html 2009-07-14 17:43:57 UTC (rev 1253)
+++ apps/opengeo/geoexplorer/branches/0.1.x/debug.html 2009-07-14 19:54:24 UTC (rev 1254)
@@ -1,78 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
- <head>
- <title>GeoExplorer (debug)</title>
-
- <!-- IE 8 Compatibility -->
- <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
-
- <link rel="shortcut icon" href="theme/app/img/favicon.ico"/>
-
- <!-- Ext resources -->
- <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.cachefly.net/ext-2.2.1/resources/css/xtheme-gray.css" />
- <script type="text/javascript" src="http://extjs.cachefly.net/ext-2.2.1/adapter/ext/ext-base.js"></script>
- <script type="text/javascript" src="http://extjs.cachefly.net/ext-2.2.1/ext-all-debug.js"></script>
-
- <!-- OpenLayers resources -->
- <link rel="stylesheet" type="text/css" href="externals/openlayers/theme/default/style.css" />
- <script src="externals/openlayers/lib/OpenLayers.js"></script>
-
- <!-- GeoExt resources -->
- <link rel="stylesheet" type="text/css" href="externals/geoext/resources/css/geoext-all-debug.css" />
- <link rel="stylesheet" type="text/css" href="externals/geoext/resources/css/gxtheme-gray.css" />
- <script src="externals/geoext/lib/GeoExt.js"></script>
-
- <!-- GeoExplorer resources -->
- <link rel="stylesheet" type="text/css" href="theme/app/geoexplorer.css" />
- <!--[if IE]><link rel="stylesheet" type="text/css" href="theme/app/ie.css"/><![endif]-->
- <script src="lib/GeoExplorer.js"></script>
- <script src="lib/GeoExplorer/util.js"></script>
- <script src="lib/Ext/grid/RowExpander.js"></script>
- <script src="lib/GeoExplorer/CapabilitiesGrid.js"></script>
-
- <script>
- Ext.BLANK_IMAGE_URL = "theme/app/img/blank.gif";
-
- var app = new GeoExplorer({
-
- /**
- * The application loads capabilities from a single WMS. The
- * ows value below is an absolute URL for this WMS. Because the
- * application loads capabilities from a different host than the
- * one that serves this application, you need to configure a
- * proxy to have the application work.
- *
- * If you have a WMS running on the same origin as this application
- * you can use a relative URL and remove the proxy property below.
- */
- ows: "http://demo.opengeo.org/geoserver/wms",
-
- /**
- * If you do not have a WMS running on the same host that serves
- * this application, you need to set up a proxy. For a proxy
- * that works with mod_python, see the following:
- * http://svn.opengeo.org/util/proxy/proxy.py
- *
- * If you do have a WMS on the same origin as this application,
- * provide a relative URL for the WMS above and comment out this
- * proxy property below.
- */
- proxy: "/proxy/?url=",
-
- map: {
- layers: [{
- name: "topp:bluemarble",
- title: "Global Imagery"
- }],
- center: [-96.7, 37.6],
- zoom: 4
- }
-
- });
- </script>
-
- </head>
- <body>
- </body>
-</html>
Modified: apps/opengeo/geoexplorer/branches/0.1.x/readme-dev.txt
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/readme-dev.txt 2009-07-14 17:43:57 UTC (rev 1253)
+++ apps/opengeo/geoexplorer/branches/0.1.x/readme-dev.txt 2009-07-14 19:54:24 UTC (rev 1254)
@@ -10,37 +10,27 @@
To get a copy of the application source code, use subversion::
- you at prompt:~$ svn export http://svn.geoext.org/apps/opengeo/geoexplorer/branches/0.1.x/ geoexplorer
+ you at prompt:~$ svn checkout http://svn.geoext.org/apps/opengeo/geoexplorer/branches/0.1.x geoexplorer
Running in development mode
---------------------------
-Your copy of the application contains a debug.html file that loads the
-application for debugging/development. This file is not suitable for running
-the application in production. To view the application, open the debug.html
-page in a browser (e.g. http://localhost/path/to/geoexplorer/debug.html).
+The application can be run in development or distribution mode. In development
+mode, individual scripts are available to a debugger. In distribution mode,
+scripts are concatenated and minified.
-Note that the inital configuration for the application works off of a remote
-WMS and requires that you have a proxy set up locally. See the debug.html
-source for detail on configuration with a local WMS.
+To run the application in development mode, change into the build director and
+run ant::
+ you at prompt:~$ cd geoexplorer/build
+ you at prompt:~/geoexplorer/build$ ant dev
-Connecting GeoExplorer to a local GeoServer
--------------------------------------------
+If the build succeeds, everything you need to run the application will be in the
+new build/GeoExplorer directory. Browse to this directory in your browser (e.g.
+http://localhost/~you/geoexplorer/build/GeoExplorer).
-The easiest way to run GeoExplorer is to place it in the www folder of a
-GeoServer data dir.
-1. Copy the geoexplorer root directory to $GEOSERVER_DATA_DIR/www/
-
-2. Modify the "ows" configuration value in geoexplorer/debug.html to reflect the
-path to your GeoServer WMS endpoint (usually "/geoserver/wms").
-
-3. Open the debug.html page in a browser (e.g.
-http://localhost:8080/geoserver/www/geoexplorer/debug.html)
-
-
Preparing the application for deployment
----------------------------------------
@@ -48,21 +38,20 @@
JavaScript files will be loaded dynamically. Before moving your application
to a production environment, follow the steps below.
-1. Copy any changes to the app configuration you made in debug.html into the
-geoexplorer/build/index.html file. Just copy the changes to the JavaScript -
-do not copy the entire contents of debug.html to index.html.
+1. Copy any changes to the app configuration you made in GeoExplorer/index.html
+into the geoexplorer/src/html/index.html file. Just copy the changes to the
+JavaScript - do not copy the entire contents of the file.
2. If you have not already set up JSTools, do so following the instructions
you find on the JSTools project page: http://pypi.python.org/pypi/JSTools
-3. Use the Makefile in the build directory to create a standalone copy of the
-application.
+3. Run ant to build the application for distribution.
For example, to create a directory that can be moved to your production
environment, do the following::
you at prompt:~$ cd geoexplorer/build
- you at prompt:~/geoexplorer/build$ make app
+ you at prompt:~/geoexplorer/build$ ant
Move the GeoExplorer directory (from the build directory) to your production
environment.
@@ -70,5 +59,21 @@
If you want to create a zip archive of the application, instead run the
following:::
- you at prompt:~/geoexplorer/build$ make zip
+ you at prompt:~/geoexplorer/build$ ant zip
+
+Connecting GeoExplorer to a local GeoServer
+-------------------------------------------
+
+The easiest way to run GeoExplorer is to place it in the www folder of a
+GeoServer data dir. This requires the production build described above (built by
+running `ant`).
+
+1. Copy the build/GeoExplorer directory to $GEOSERVER_DATA_DIR/www/
+
+2. Modify the "wms" configuration value in GeoExplorer/index.html to reflect the
+path to your GeoServer WMS endpoint (usually "/geoserver/wms").
+
+3. Open the index.html page in a browser (e.g.
+http://localhost:8080/geoserver/www/GeoExplorer/index.html)
+
Copied: apps/opengeo/geoexplorer/branches/0.1.x/src/html/about.html (from rev 1253, apps/opengeo/geoexplorer/branches/0.1.x/about.html)
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/src/html/about.html (rev 0)
+++ apps/opengeo/geoexplorer/branches/0.1.x/src/html/about.html 2009-07-14 19:54:24 UTC (rev 1254)
@@ -0,0 +1,36 @@
+<html>
+ <head>
+ <title>About GeoExplorer</title>
+ <link rel="stylesheet" type="text/css" href="@theme-dir@/about.css"/>
+ </head>
+ <body>
+ <div class="logo"></div>
+ <h2> GeoExplorer </h2>
+ <div class="versioninfo">Version 0.1</div>
+ <h3> Engineering & Design by OpenGeo </h3>
+ <a href="http://opengeo.org/">http://opengeo.org/</a>
+ © 2009, OpenGeo under the BSD license.
+
+ <h3> GeoExt Framework </h3>
+ <a href="http://geoext.org/">http://geoext.org/</a>
+ © 2009, OSGeo under the BSD license.
+
+ <h3> GeoSilk Icons </h3>
+ <a href="http://projects.opengeo.org/geosilk/">http://projects.opengeo.org/geosilk/</a>
+ © 2009, OpenGeo under CC-BY 3.0.
+
+ <h3> Silk Icons </h3>
+ <a href="http://famfamfam.com/lab/icons/silk/">http://famfamfam.com/lab/icons/silk/</a>
+ © Mark James under CC-BY 3.0.
+
+ <h3> Contributors </h3>
+ <ul>
+ <li>Tim Schaub</li>
+ <li>David Winslow</li>
+ <li>Sebastian Benthall</li>
+ <li>Andreas Hocevar</li>
+ <li>Tim Coulter</li>
+ <li>Rolando Peñate</li>
+ </ul>
+ </body>
+</html>
Property changes on: apps/opengeo/geoexplorer/branches/0.1.x/src/html/about.html
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: apps/opengeo/geoexplorer/branches/0.1.x/src/html/index.html (from rev 1253, apps/opengeo/geoexplorer/branches/0.1.x/build/index.html)
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/src/html/index.html (rev 0)
+++ apps/opengeo/geoexplorer/branches/0.1.x/src/html/index.html 2009-07-14 19:54:24 UTC (rev 1254)
@@ -0,0 +1,73 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+ <title>@title@</title>
+
+ <!-- IE 8 Compatibility -->
+ <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
+
+ <!-- Ext resources -->
+ <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.cachefly.net/ext-2.2.1/resources/css/xtheme-gray.css" />
+ <script type="text/javascript" src="http://extjs.cachefly.net/ext-2.2.1/adapter/ext/ext-base.js"></script>
+ <script type="text/javascript" src="http://extjs.cachefly.net/ext-2.2.1/@ext-all.js@"></script>
+
+ <!-- OpenLayers resources -->
+ <link rel="stylesheet" type="text/css" href="@ol-style.css@" />
+ <script type="text/javascript" src="@OpenLayers.js@"></script>
+
+ <!-- GeoExt resources -->
+ <link rel="stylesheet" type="text/css" href="@geoext-all.css@" />
+ <link rel="stylesheet" type="text/css" href="@gxtheme-gray.css@" />
+ <script type="text/javascript" src="@GeoExt.js@"></script>
+
+ <!-- GeoExplorer resources -->
+ <link rel="shortcut icon" href="@theme-dir@/img/favicon.ico"/>
+ <link rel="stylesheet" type="text/css" href="@theme-dir@/geoexplorer.css" />
+ <!--[if IE]><link rel="stylesheet" type="text/css" href="@theme-dir@/ie.css"/><![endif]-->
+ <script type="text/javascript" src="@GeoExplorer.js@"></script>
+ <script type="text/javascript" src="@ux.js@"></script>
+
+ <script>
+ Ext.BLANK_IMAGE_URL = "@theme-dir@/img/blank.gif";
+ var app = new GeoExplorer({
+
+ /**
+ * The application loads capabilities from a single WMS. The
+ * wms value below is an absolute URL for this WMS. Because the
+ * application loads capabilities from a different host than the
+ * one that serves this application, you need to configure a
+ * proxy to have the application work.
+ *
+ * If you have a WMS running on the same origin as this application
+ * you can use a relative URL and remove the proxy property below.
+ */
+ wms: "http://demo.opengeo.org/geoserver/wms",
+
+ /**
+ * If you do not have a WMS running on the same host that serves
+ * this application, you need to set up a proxy. For a proxy
+ * that works with mod_python, see the following:
+ * http://svn.opengeo.org/util/proxy/proxy.py
+ *
+ * If you do have a WMS on the same origin as this application,
+ * provide a relative URL for the WMS above and comment out this
+ * proxy property below.
+ */
+ proxy: "/proxy/?url=",
+
+ map: {
+ layers: [{
+ name: "topp:bluemarble",
+ title: "Global Imagery"
+ }],
+ center: [-96.7, 37.6],
+ zoom: 4
+ }
+ });
+ </script>
+
+ </head>
+ <body>
+ </body>
+</html>
Copied: apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/GeoExplorer (from rev 1253, apps/opengeo/geoexplorer/branches/0.1.x/lib/GeoExplorer)
Property changes on: apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/GeoExplorer
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/GeoExplorer.js (from rev 1253, apps/opengeo/geoexplorer/branches/0.1.x/lib/GeoExplorer.js)
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/GeoExplorer.js (rev 0)
+++ apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/GeoExplorer.js 2009-07-14 19:54:24 UTC (rev 1254)
@@ -0,0 +1,1084 @@
+/**
+ * Copyright (c) 2009 The Open Planning Project
+ */
+
+/**
+ * Constructor: GeoExplorer
+ * Create a new GeoExplorer application.
+ *
+ * Parameters:
+ * config - {Object} Optional application configuration properties.
+ *
+ * Valid config properties:
+ * map - {Object} Map configuration object.
+ * wms - {String} WMS URL
+ * alignToGrid - {boolean} if true, align tile requests to the grid enforced by
+ * tile caches such as GeoWebCache or Tilecache
+ *
+ * Valid map config properties:
+ * layers - {Array} A list of layer configuration objects.
+ * center - {Array} A two item array with center coordinates.
+ * zoom - {Number} An initial zoom level.
+ *
+ * Valid layer config properties:
+ * name - {String} Required WMS layer name.
+ * title - {String} Optional title to display for layer.
+ */
+var GeoExplorer = Ext.extend(Ext.util.Observable, {
+
+ /**
+ * Property: map
+ * {OpenLayers.Map} The application's map.
+ */
+ map: null,
+
+ /**
+ * Property: layers
+ * {GeoExt.data.LayerStore} A store containing a record for each layer
+ * on the map.
+ */
+ layers: null,
+
+ /**
+ * Property: capabilities
+ * {GeoExt.data.WMSCapabilitiesStore} A store containing a record for each
+ * layer on the server.
+ */
+ capabilities: null,
+
+ /**
+ * Property: mapPanel
+ * {GeoExt.MapPanel} the MapPanel instance for the main viewport
+ */
+ mapPanel: null,
+
+ /**
+ * Property: alignToGrid
+ * whether or not to restrict tile request to tiled mapping service recommendation
+ */
+ alignToGrid: false,
+
+ /**
+ * Property: capGrid
+ * {<Ext.Window>} A window which includes a CapabilitiesGrid panel.
+ */
+ capGrid: null,
+
+ /**
+ * Property: popupCache
+ * {Object} An object containing references to visible popups so that
+ * we can insert responses from multiple requests.
+ */
+ popupCache: null,
+
+ constructor: function(config) {
+
+ var query = Ext.urlDecode(document.location.search.substr(1));
+ var queryConfig = Ext.util.JSON.decode(query.q);
+
+ this.initialConfig = Ext.apply({}, queryConfig, config);
+ Ext.apply(this, this.initialConfig);
+
+ // add any custom application events
+ this.addEvents(
+ /**
+ * Event: ready
+ * Fires when application is ready for user interaction.
+ */
+ "ready"
+ );
+
+ // pass on any proxy config to OpenLayers
+ if(this.proxy) {
+ OpenLayers.ProxyHost = this.proxy;
+ }
+
+ this.popupCache = {};
+
+ this.load();
+
+ },
+
+
+ /**
+ * Method: load
+ * Called at the end of construction. This initiates the sequence that
+ * prepares the application for use.
+ */
+ load: function() {
+ GeoExplorer.util.dispatch(
+ [
+ // create layout as soon as Ext says ready
+ function(done) {
+ Ext.onReady(function() {
+ this.createLayout();
+ done();
+ }, this);
+ },
+ // load capabilities immediately
+ function(done) {
+ this.initCapabilities();
+ this.capabilities.load({
+ callback: done
+ });
+ }
+ ],
+ // activate app when the above are both done
+ this.activate, this
+ );
+ },
+
+ /**
+ * Method: initCapabilities
+ */
+ initCapabilities: function() {
+ var url;
+ var args = {
+ SERVICE: "WMS",
+ REQUEST: "GetCapabilities"
+ };
+ var argIndex = this.wms.indexOf("?");
+ if(argIndex > -1) {
+ var search = this.wms.substring(this.wms.indexOf("?")+1);
+ var url = this.wms.replace(search, Ext.urlEncode(Ext.apply(
+ Ext.urlDecode(search), args
+ )));
+ } else {
+ url = this.wms + "?" + Ext.urlEncode(args);
+ }
+ if(this.proxy) {
+ url = this.proxy + encodeURIComponent(url);
+ }
+
+ this.capabilities = new GeoExt.data.WMSCapabilitiesStore({url: url});
+ },
+
+ /**
+ * Method: createLayout
+ * Create the various parts that compose the layout.
+ */
+ createLayout: function() {
+
+ // create the map
+ // TODO: check this.initialConfig.map for any map options
+ this.map = new OpenLayers.Map({
+ theme: null,
+ allOverlays: true,
+ controls: [new OpenLayers.Control.Navigation(),
+ new OpenLayers.Control.PanPanel(),
+ new OpenLayers.Control.ZoomPanel()]
+ });
+
+ //** Remove this code when OpenLayers #2069 is closed **
+ var onDoubleClick = function(ctrl, evt) {
+ OpenLayers.Event.stop(evt ? evt : window.event);
+ };
+ var controls = this.map.controls[1].controls;
+ for(var i = 0; i < controls.length; i++){
+ OpenLayers.Event.observe(controls[i].panel_div, "dblclick",
+ OpenLayers.Function.bind(onDoubleClick, this.map.controls[0], controls[i]));
+ }
+ //******************************************************
+
+ //TODO: make this more configurable
+ this.map.events.on({
+ "preaddlayer" : function(evt){
+ if(evt.layer.mergeNewParams){
+ var maxExtent = evt.layer.maxExtent;
+ evt.layer.mergeNewParams({
+ transparent: true,
+ format: "image/png",
+ tiled: true,
+ tilesorigin: [maxExtent.left, maxExtent.bottom]
+ });
+ }
+ },
+ scope : this
+ });
+
+
+ // place map in panel
+ var mapConfig = this.initialConfig.map || {};
+ this.mapPanel = new GeoExt.MapPanel({
+ layout: "anchor",
+ border: true,
+ region: "center",
+ map: this.map,
+ // TODO: update the OpenLayers.Map constructor to accept an initial center
+ center: mapConfig.center && new OpenLayers.LonLat(mapConfig.center[0], mapConfig.center[1]),
+ // TODO: update the OpenLayers.Map constructor to accept an initial zoom
+ zoom: mapConfig.zoom,
+ items: [
+ {
+ xtype: "gx_zoomslider",
+ vertical: true,
+ height: 100,
+ plugins: new GeoExt.ZoomSliderTip({
+ template: "<div>Zoom Level: {zoom}</div>"
+ })
+ },
+ this.createMapOverlay()
+ ]
+ });
+
+ // create layer store
+ this.layers = this.mapPanel.layers;
+
+ var addLayerButton = new Ext.Button({
+ tooltip : "Add Layers",
+ disabled: true,
+ iconCls: "icon-addlayers",
+ handler : this.showCapabilitiesGrid,
+ scope: this
+ });
+ this.on("ready", function() {addLayerButton.enable();});
+
+ var removeLayerAction = new Ext.Action({
+ text: "Remove Layer",
+ iconCls: "icon-removelayers",
+ disabled: true,
+ tooltip: "Remove Layer",
+ handler: function() {
+ var node = layerTree.getSelectionModel().getSelectedNode();
+ if(node && node.layer) {
+ var layer = node.layer;
+ var store = node.layerStore;
+ var record = store.getAt(store.findBy(function(record) {
+ return record.get("layer") === layer;
+ }));
+ store.remove(record);
+ removeLayerAction.disable();
+ }
+ }
+ });
+
+ var layerTree = new Ext.tree.TreePanel({
+ border: false,
+ rootVisible: false,
+ root: new GeoExt.tree.LayerContainer({
+ text: 'Map Layers',
+ layerStore: this.layers
+ }),
+ enableDD: true,
+ selModel: new Ext.tree.DefaultSelectionModel({
+ listeners: {
+ beforeselect: function() {
+ // allow removal if more than one non-vector layer
+ var count = this.mapPanel.layers.queryBy(function(r) {
+ return !(r.get("layer") instanceof OpenLayers.Layer.Vector);
+ }).getCount();
+ if(count > 1) {
+ removeLayerAction.enable();
+ }
+ },
+ scope: this
+ }
+ }),
+ listeners: {
+ contextmenu: function(node, e) {
+ node.select();
+ var c = node.getOwnerTree().contextMenu;
+ c.contextNode = node;
+ c.showAt(e.getXY());
+ },
+ scope: this
+ },
+ contextMenu: new Ext.menu.Menu({
+ items: [
+ {
+ text: "Zoom to Layer Extent",
+ iconCls: "icon-zoom-visible",
+ handler: function() {
+ var node = layerTree.getSelectionModel().getSelectedNode();
+ if(node && node.layer) {
+ this.map.zoomToExtent(node.layer.restrictedExtent);
+ }
+ },
+ scope: this
+ },
+ removeLayerAction
+ ]
+ })
+ });
+
+ var layersContainer = new Ext.Panel({
+ autoScroll: true,
+ border: false,
+ region: 'center',
+ title: "Layers",
+ items: [layerTree],
+ tbar: [
+ addLayerButton,
+ Ext.apply(new Ext.Button(removeLayerAction), {text: ""})
+ ]
+ });
+
+ var legendContainer = new GeoExt.LegendPanel({
+ title: "Legend",
+ border: false,
+ region: 'south',
+ height: 200,
+ collapsible: true,
+ split: true,
+ autoScroll: true,
+ ascending: false,
+ map: this.map,
+ defaults: {cls: 'legend-item'}
+ });
+
+ var westPanel = new Ext.Panel({
+ border: true,
+ layout: "border",
+ region: "west",
+ width: 250,
+ split: true,
+ collapsible: true,
+ collapseMode: "mini",
+ items: [
+ layersContainer, legendContainer
+ ]
+ });
+
+ var toolbar = new Ext.Toolbar({
+ xtype: "toolbar",
+ region: "north",
+ disabled: true,
+ items: this.createTools()
+ });
+ this.on("ready", function() {
+ // enable only those items that were not specifically disabled
+ var disabled = toolbar.items.filterBy(function(item) {
+ return item.initialConfig && item.initialConfig.disabled;
+ });
+ toolbar.enable();
+ disabled.each(function(item) {
+ item.disable();
+ });
+ });
+
+ var viewport = new Ext.Viewport({
+ layout: "fit",
+ hideBorders: true,
+ items: {
+ layout: "border",
+ deferredRender: false,
+ items: [
+ toolbar,
+ this.mapPanel,
+ westPanel
+ ]
+ }
+ });
+ },
+
+ /**
+ * Method: activate
+ * Activate the application. Call after application is configured.
+ */
+ activate: function() {
+
+ // add any layers from config
+ this.addLayers();
+
+ // initialize tooltips
+ Ext.QuickTips.init();
+
+ this.fireEvent("ready");
+
+ },
+
+ /**
+ * Method: addLayers
+ * Construct the layer store to be used with the map (referenced as <layers>).
+ */
+ addLayers: function() {
+ var mapConfig = this.initialConfig.map;
+
+ if(mapConfig && mapConfig.layers) {
+ var conf, id, record, layer, records = [];
+ for(var i=0; i<mapConfig.layers.length; ++i) {
+ conf = mapConfig.layers[i];
+ id = this.capabilities.find("name", conf.name);
+ if(id >= 0) {
+ /**
+ * If the same layer is added twice, it will get replaced
+ * unless we give each record a unique id. In addition, we
+ * need to clone the layer so that the map doesn't assume
+ * the layer has already been added. Finally, we can't
+ * simply set the record layer to the cloned layer because
+ * record.set compares String(value) to determine equality.
+ *
+ * TODO: suggest record.clone
+ */
+ Ext.data.Record.AUTO_ID++;
+ record = this.capabilities.getAt(id).copy(Ext.data.Record.AUTO_ID);
+ layer = record.get("layer").clone();
+ record.set("layer", null);
+ record.set("layer", layer);
+
+ // set layer max extent from capabilities
+ // TODO: make this SRS independent
+ layer.restrictedExtent = OpenLayers.Bounds.fromArray(record.get("llbbox"));
+
+ if (this.alignToGrid) {
+ layer.maxExtent = new OpenLayers.Bounds(-180, -90, 180, 90);
+ } else {
+ layer.maxExtent = layer.restrictedExtent;
+ }
+
+ // set layer visibility from config
+ layer.visibility = ("visibility" in conf) ?
+ conf.visibility : true;
+
+ // set layer title from config
+ if(conf.title) {
+ /**
+ * Because the layer title data is duplicated, we have
+ * to set it in both places. After records have been
+ * added to the store, the store handles this
+ * synchronization.
+ */
+ layer.setName(conf.title);
+ record.set("title", conf.title);
+ }
+
+ // set any other layer configuration
+
+ records.push(record);
+ }
+ }
+ this.layers.add(records);
+
+ // set map center
+ if(this.mapPanel.center) {
+ // zoom does not have to be defined
+ this.map.setCenter(this.mapPanel.center, this.mapPanel.zoom);
+ } else if (this.mapPanel.extent) {
+ this.map.zoomToExtent(this.mapPanel.extent);
+ } else {
+ this.map.zoomToMaxExtent();
+ }
+
+ }
+ },
+
+ /**
+ * Method: initCapGrid
+ * Constructs a window with a capabilities grid.
+ */
+ initCapGrid: function(){
+
+ var capGridPanel = new GeoExplorer.CapabilitiesGrid({
+ store: this.capabilities,
+ mapPanel : this.mapPanel,
+ layout: 'fit',
+ region: 'center',
+ autoScroll: true,
+ alignToGrid: this.alignToGrid,
+ listeners: {
+ rowdblclick: function(panel, index, evt) {
+ panel.addLayers();
+ }
+ }
+ });
+
+ this.capGrid = new Ext.Window({
+ title: "Available Layers",
+ closeAction: 'hide',
+ layout: 'border',
+ height: 300,
+ width: 600,
+ items: [
+ capGridPanel
+ ],
+ bbar: [
+ "->",
+ new Ext.Button({
+ text: "Add Layers",
+ iconCls: "icon-addlayers",
+ handler: function(){
+ capGridPanel.addLayers();
+ },
+ scope : this
+ }),
+ new Ext.Button({
+ text: "Done",
+ handler: function() {
+ this.capGrid.hide();
+ },
+ scope: this
+ })
+ ],
+ listeners: {
+ hide: function(win){
+ capGridPanel.getSelectionModel().clearSelections();
+ }
+ }
+ });
+ },
+
+ /**
+ * Method: showCapabilitiesGrid
+ * Shows the window with a capabilities grid.
+ */
+ showCapabilitiesGrid: function() {
+ if(!this.capGrid) {
+ this.initCapGrid();
+ }
+ this.capGrid.show();
+ },
+
+ createMapOverlay: function() {
+ var scaleLinePanel = new Ext.Panel({
+ cls: 'olControlScaleLine overlay-element overlay-scaleline',
+ border: false
+ });
+
+ scaleLinePanel.on('render', function(){
+ var scaleLine = new OpenLayers.Control.ScaleLine({
+ div: scaleLinePanel.body.dom
+ });
+
+ this.map.addControl(scaleLine);
+ scaleLine.activate();
+ }, this);
+
+ var zoomStore = new GeoExt.data.ScaleStore({
+ map: this.map
+ });
+
+ var zoomSelector = new Ext.form.ComboBox({
+ emptyText: 'Zoom level',
+ tpl: '<tpl for="."><div class="x-combo-list-item">1 : {[parseInt(values.scale)]}</div></tpl>',
+ editable: false,
+ triggerAction: 'all',
+ mode: 'local',
+ store: zoomStore,
+ width: 110
+ });
+
+ zoomSelector.on('click', function(evt){evt.stopEvent();});
+ zoomSelector.on('mousedown', function(evt){evt.stopEvent();});
+
+ zoomSelector.on('select', function(combo, record, index) {
+ this.map.zoomTo(record.data.level);
+ },
+ this
+ );
+
+ var zoomSelectorWrapper = new Ext.Panel({
+ items: [zoomSelector],
+ cls: 'overlay-element overlay-scalechooser',
+ border: false });
+
+ this.map.events.register('zoomend', this, function() {
+ var scale = zoomStore.queryBy(function(record){
+ return this.map.getZoom() == record.data.level;
+ });
+
+ if (scale.length > 0) {
+ scale = scale.items[0];
+ zoomSelector.setValue("1 : " + parseInt(scale.data.scale, 10));
+ } else {
+ if (!zoomSelector.rendered) {
+ return;
+ }
+ zoomSelector.clearValue();
+ }
+ });
+
+ var mapOverlay = new Ext.Panel({
+ // title: "Overlay",
+ cls: 'map-overlay',
+ items: [
+ scaleLinePanel,
+ zoomSelectorWrapper
+ ]
+ });
+
+
+ mapOverlay.on("afterlayout", function(){
+ scaleLinePanel.body.dom.style.position = 'relative';
+ scaleLinePanel.body.dom.style.display = 'inline';
+
+ mapOverlay.getEl().on("click", function(x){x.stopEvent();});
+ mapOverlay.getEl().on("mousedown", function(x){x.stopEvent();});
+ }, this);
+
+ return mapOverlay;
+ },
+
+ createTools: function() {
+
+ var toolGroup = "toolGroup";
+
+ // create a navigation control
+ var navAction = new GeoExt.Action({
+ tooltip: "Pan Map",
+ iconCls: "icon-pan",
+ enableToggle: true,
+ pressed: true,
+ allowDepress: false,
+ control: new OpenLayers.Control.Navigation(),
+ map: this.map,
+ toggleGroup: toolGroup
+ });
+
+ // create a navigation history control
+ var historyControl = new OpenLayers.Control.NavigationHistory();
+ this.map.addControl(historyControl);
+
+ // create actions for previous and next
+ var navPreviousAction = new GeoExt.Action({
+ tooltip: "Zoom to Previous Extent",
+ iconCls: "icon-zoom-previous",
+ disabled: true,
+ control: historyControl.previous
+ });
+
+ var navNextAction = new GeoExt.Action({
+ tooltip: "Zoom to Next Extent",
+ iconCls: "icon-zoom-next",
+ disabled: true,
+ control: historyControl.next
+ });
+
+
+ // create a get feature info control
+ var info = {controls: []};
+ var infoButton = new Ext.Button({
+ tooltip: "Get Feature Info",
+ iconCls: "icon-getfeatureinfo",
+ toggleGroup: toolGroup,
+ enableToggle: true,
+ allowDepress: false,
+ toggleHandler: function(button, pressed) {
+ for (var i = 0, len = info.controls.length; i < len; i++){
+ if(pressed) {
+ info.controls[i].activate();
+ } else {
+ info.controls[i].deactivate();
+ }
+ }
+ }
+ });
+
+ var updateInfo = function() {
+ var queryableLayers = this.mapPanel.layers.queryBy(function(x){
+ return x.get("queryable");
+ });
+
+ var map = this.mapPanel.map;
+ var control;
+ for (var i = 0, len = info.controls.length; i < len; i++){
+ control = info.controls[i];
+ control.deactivate(); // TODO: remove when http://trac.openlayers.org/ticket/2130 is closed
+ control.destroy();
+ }
+
+ info.controls = [];
+ queryableLayers.each(function(x){
+ var control = new OpenLayers.Control.WMSGetFeatureInfo({
+ url: x.get("layer").url,
+ queryVisible: true,
+ layers: [x.get("layer")],
+ eventListeners: {
+ getfeatureinfo: function(evt) {
+ this.displayPopup(evt, x.get("title") || x.get("name"));
+ },
+ scope: this
+ }
+ });
+ map.addControl(control);
+ info.controls.push(control);
+ if(infoButton.pressed) {
+ control.activate();
+ }
+ }, this);
+ };
+
+ this.mapPanel.layers.on("update", updateInfo, this);
+ this.mapPanel.layers.on("add", updateInfo, this);
+ this.mapPanel.layers.on("remove", updateInfo, this);
+
+ // create split button for measure controls
+ var activeIndex = 0;
+ var measureSplit = new Ext.SplitButton({
+ iconCls: "icon-measure-length",
+ tooltip: "Measure",
+ enableToggle: true,
+ toggleGroup: toolGroup, // Ext doesn't respect this, registered with ButtonToggleMgr below
+ allowDepress: false, // Ext doesn't respect this, handler deals with it
+ handler: function(button, event) {
+ // allowDepress should deal with this first condition
+ if(!button.pressed) {
+ button.toggle();
+ } else {
+ button.menu.items.itemAt(activeIndex).setChecked(true);
+ }
+ },
+ listeners: {
+ toggle: function(button, pressed) {
+ // toggleGroup should handle this
+ if(!pressed) {
+ button.menu.items.each(function(i) {
+ i.setChecked(false);
+ });
+ }
+ },
+ render: function(button) {
+ // toggleGroup should handle this
+ Ext.ButtonToggleMgr.register(button);
+ }
+ },
+ menu: new Ext.menu.Menu({
+ items: [
+ new Ext.menu.CheckItem(
+ new GeoExt.Action({
+ text: "Length",
+ iconCls: "icon-measure-length",
+ toggleGroup: toolGroup,
+ group: toolGroup,
+ allowDepress: false,
+ map: this.map,
+ control: this.createMeasureControl(
+ OpenLayers.Handler.Path, "Length"
+ )
+ })
+ ),
+ new Ext.menu.CheckItem(
+ new GeoExt.Action({
+ text: "Area",
+ iconCls: "icon-measure-area",
+ toggleGroup: toolGroup,
+ group: toolGroup,
+ allowDepress: false,
+ map: this.map,
+ control: this.createMeasureControl(
+ OpenLayers.Handler.Polygon, "Area"
+ )
+ })
+ )
+ ]
+ })
+ });
+ measureSplit.menu.items.each(function(item, index) {
+ item.on({checkchange: function(item, checked) {
+ measureSplit.toggle(checked);
+ if(checked) {
+ activeIndex = index;
+ measureSplit.setIconClass(item.iconCls);
+ }
+ }});
+ });
+
+ var tools = [
+ new Ext.Button({
+ text: "GeoExplorer",
+ iconCls: "icon-geoexplorer",
+ handler: this.displayAppInfo
+ }),
+ "-",
+ new Ext.Button({
+ tooltip: "Bookmark",
+ handler: this.bookmark,
+ scope: this,
+ iconCls: "icon-save"
+ }),
+ "-",
+ navAction,
+ infoButton,
+ measureSplit,
+ "-",
+ new Ext.Button({
+ handler: function(){
+ this.map.zoomIn();
+ },
+ tooltip: "Zoom In",
+ iconCls: "icon-zoom-in",
+ scope: this
+ }),
+ new Ext.Button({
+ tooltip: "Zoom Out",
+ handler: function(){
+ this.map.zoomOut();
+ },
+ iconCls: "icon-zoom-out",
+ scope: this
+ }),
+ navPreviousAction,
+ navNextAction,
+ new Ext.Button({
+ tooltip: "Zoom to Visible Extent",
+ iconCls: "icon-zoom-visible",
+ handler: function() {
+ var extent, layer;
+ for(var i=0, len=this.map.layers.length; i<len; ++i) {
+ layer = this.map.layers[i];
+ if(layer.getVisibility()) {
+ if(extent) {
+ extent.extend(layer.maxExtent);
+ } else {
+ extent = layer.maxExtent.clone();
+ }
+ }
+ }
+ if(extent) {
+ this.map.zoomToExtent(extent);
+ }
+ },
+ scope: this
+ })
+ ];
+
+ return tools;
+ },
+
+ createMeasureControl: function(handlerType, title) {
+
+ var styleMap = new OpenLayers.StyleMap({
+ "default": new OpenLayers.Style(null, {
+ rules: [new OpenLayers.Rule({
+ symbolizer: {
+ "Point": {
+ pointRadius: 4,
+ graphicName: "square",
+ fillColor: "white",
+ fillOpacity: 1,
+ strokeWidth: 1,
+ strokeOpacity: 1,
+ strokeColor: "#333333"
+ },
+ "Line": {
+ strokeWidth: 3,
+ strokeOpacity: 1,
+ strokeColor: "#666666",
+ strokeDashstyle: "dash"
+ },
+ "Polygon": {
+ strokeWidth: 2,
+ strokeOpacity: 1,
+ strokeColor: "#666666",
+ fillColor: "white",
+ fillOpacity: 0.3
+ }
+ }
+ })]
+ })
+ });
+
+ var cleanup = function() {
+ if (measureToolTip) {
+ measureToolTip.destroy();
+ }
+ };
+
+ var makeString = function(metricData) {
+ var metric = metricData.measure;
+ var metricUnit = metricData.units;
+
+ measureControl.displaySystem = "english";
+
+ var englishData = metricData.geometry.CLASS_NAME.indexOf("LineString") > -1 ?
+ measureControl.getBestLength(metricData.geometry) :
+ measureControl.getBestArea(metricData.geometry);
+
+ var english = englishData[0];
+ var englishUnit = englishData[1];
+
+ measureControl.displaySystem = "metric";
+ var dim = metricData.order == 2 ?
+ '<sup>2</sup>' :
+ '';
+
+ return metric.toFixed(2) + " " + metricUnit + dim + "<br>" +
+ english.toFixed(2) + " " + englishUnit + dim;
+ };
+
+ var measureToolTip;
+ var measureControl = new OpenLayers.Control.Measure(handlerType, {
+ persist: true,
+ handlerOptions: {layerOptions: {styleMap: styleMap}},
+ eventListeners: {
+ measurepartial: function(event) {
+ cleanup();
+ measureToolTip = new Ext.ToolTip({
+ html: makeString(event),
+ title: title,
+ autoHide: false,
+ closable: true,
+ draggable: false,
+ mouseOffset: [0, 0],
+ showDelay: 1,
+ listeners: {hide: cleanup}
+ });
+ if(event.measure > 0) {
+ var px = measureControl.handler.lastUp;
+ var p0 = this.mapPanel.getPosition();
+ measureToolTip.targetXY = [p0[0] + px.x, p0[1] + px.y];
+ measureToolTip.show();
+ }
+ },
+ measure: function(event) {
+ cleanup();
+ measureToolTip = new Ext.ToolTip({
+ target: Ext.getBody(),
+ html: makeString(event),
+ title: title,
+ autoHide: false,
+ closable: true,
+ draggable: false,
+ mouseOffset: [0, 0],
+ showDelay: 1,
+ listeners: {
+ hide: function() {
+ measureControl.cancel();
+ cleanup();
+ }
+ }
+ });
+ },
+ deactivate: cleanup,
+ scope: this
+ }
+ });
+
+ return measureControl;
+ },
+
+ displayPopup: function(evt, title){
+ var popup;
+ var popupKey = evt.xy.x + "." + evt.xy.y;
+
+ if (!(popupKey in this.popupCache)) {
+ var lonlat = this.map.getLonLatFromPixel(evt.xy);
+ popup = new GeoExt.Popup({
+ title: "Feature Info",
+ layout: "accordion",
+ map: this.map,
+ lonlat: lonlat,
+ width: 250,
+ height: 300,
+ listeners: {
+ close: function(panel) {
+ delete this.popupCache[popupKey];
+ },
+ scope: this
+ }
+ });
+ popup.show();
+ this.popupCache[popupKey] = popup;
+ } else {
+ popup = this.popupCache[popupKey];
+ }
+
+ var html = evt.text;
+ if (!(html == '' || html.match(/<body>\s*<\/body>/))) {
+ popup.add({
+ title: title,
+ layout: "fit",
+ html: html,
+ autoScroll: true,
+ autoWidth: true,
+ collapsible: true
+ });
+ }
+
+ popup.doLayout();
+ },
+
+
+ /**
+ * Method: bookmark
+ * Creates a window that shows the user a URL that can be used to
+ * reload the map in its current configuration.
+ *
+ * Returns:
+ *{String} The URL displayed to the user.
+ */
+ bookmark: function(){
+
+ var params = Ext.apply(
+ OpenLayers.Util.getParameters(),
+ {q: Ext.util.JSON.encode(this.extractConfiguration())}
+ );
+
+ // disregard any hash in the url, but maintain all other components
+ var url =
+ document.location.href.split("?").shift() +
+ "?" + Ext.urlEncode(params);
+
+ var win = new Ext.Window({
+ title: "Bookmark URL",
+ layout: 'form',
+ labelAlign: 'top',
+ modal: true,
+ bodyStyle: "padding: 5px",
+ width: 300,
+ items: [{
+ xtype: 'textfield',
+ fieldLabel: 'Permalink',
+ readOnly: true,
+ anchor: "100%",
+ selectOnFocus: true,
+ value: url
+ }]
+ });
+
+ win.show();
+ win.items.first().selectText();
+
+ return url;
+ },
+
+ /**
+ * Method: extractConfiguration
+ * Returns an object that represents the app's current configuration.
+ *
+ * Returns:
+ *{Object} An object that represents the app's current configuration.
+ */
+ extractConfiguration: function(){
+ var config = {};
+
+ // Map configuration
+
+ var center = this.map.getCenter();
+
+ config.map = {
+ center: [center.lon, center.lat],
+ zoom: this.map.zoom
+ };
+
+ //Layers configuration
+ config.map.layers = [];
+
+ this.layers.each(function(layerRecord){
+
+ if(layerRecord.get("layer").displayInLayerSwitcher) {
+ var c = {
+ title: layerRecord.get("title"),
+ name: (layerRecord.get("layer").params &&
+ layerRecord.get("layer").params.LAYERS) ||
+ layerRecord.get("name"),
+ visibility: layerRecord.get("layer").getVisibility()
+ };
+
+ config.map.layers.push(c);
+ }
+ });
+
+ return config;
+ },
+
+ displayAppInfo: function() {
+ var win = new Ext.Window({
+ title: "About GeoExplorer",
+ html: "<iframe style=\"border: none; height: 100%; width: 100%\" src=\"about.html\"><a target=\"_blank\" href=\"about.html\">About GeoExplorer</a> </iframe>",
+ modal: true,
+ width: 300,
+ height: 350
+ });
+ win.show();
+ }
+});
Property changes on: apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/GeoExplorer.js
___________________________________________________________________
Name: svn:mergeinfo
+
Added: apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/loader.js
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/loader.js (rev 0)
+++ apps/opengeo/geoexplorer/branches/0.1.x/src/script/app/loader.js 2009-07-14 19:54:24 UTC (rev 1254)
@@ -0,0 +1,30 @@
+(function() {
+
+ var jsfiles = new Array(
+ "../../src/script/app/GeoExplorer.js",
+ "../../src/script/app/GeoExplorer/util.js",
+ "../../src/script/app/GeoExplorer/CapabilitiesGrid.js"
+ );
+
+ var appendable = !(/MSIE/.test(navigator.userAgent) ||
+ /Safari/.test(navigator.userAgent));
+ var pieces = new Array(jsfiles.length);
+
+ var element = document.getElementsByTagName("head").length ?
+ document.getElementsByTagName("head")[0] :
+ document.body;
+ var script;
+
+ for(var i=0; i<jsfiles.length; i++) {
+ if(!appendable) {
+ pieces[i] = "<script src='" + jsfiles[i] + "'></script>";
+ } else {
+ script = document.createElement("script");
+ script.src = jsfiles[i];
+ element.appendChild(script);
+ }
+ }
+ if(!appendable) {
+ document.write(pieces.join(""));
+ }
+})();
Copied: apps/opengeo/geoexplorer/branches/0.1.x/src/script/ux/RowExpander.js (from rev 1253, apps/opengeo/geoexplorer/branches/0.1.x/lib/Ext/grid/RowExpander.js)
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/src/script/ux/RowExpander.js (rev 0)
+++ apps/opengeo/geoexplorer/branches/0.1.x/src/script/ux/RowExpander.js 2009-07-14 19:54:24 UTC (rev 1254)
@@ -0,0 +1,136 @@
+/*
+ * Ext JS Library 2.2.1
+ * Copyright(c) 2006-2009, Ext JS, LLC.
+ * licensing at extjs.com
+ *
+ * http://extjs.com/license
+ */
+
+Ext.grid.RowExpander = function(config){
+ Ext.apply(this, config);
+
+ this.addEvents({
+ beforeexpand : true,
+ expand: true,
+ beforecollapse: true,
+ collapse: true
+ });
+
+ Ext.grid.RowExpander.superclass.constructor.call(this);
+
+ if(this.tpl){
+ if(typeof this.tpl == 'string'){
+ this.tpl = new Ext.Template(this.tpl);
+ }
+ this.tpl.compile();
+ }
+
+ this.state = {};
+ this.bodyContent = {};
+};
+
+Ext.extend(Ext.grid.RowExpander, Ext.util.Observable, {
+ header: "",
+ width: 20,
+ sortable: false,
+ fixed:true,
+ menuDisabled:true,
+ dataIndex: '',
+ id: 'expander',
+ lazyRender : true,
+ enableCaching: true,
+
+ getRowClass : function(record, rowIndex, p, ds){
+ p.cols = p.cols-1;
+ var content = this.bodyContent[record.id];
+ if(!content && !this.lazyRender){
+ content = this.getBodyContent(record, rowIndex);
+ }
+ if(content){
+ p.body = content;
+ }
+ return this.state[record.id] ? 'x-grid3-row-expanded' : 'x-grid3-row-collapsed';
+ },
+
+ init : function(grid){
+ this.grid = grid;
+
+ var view = grid.getView();
+ view.getRowClass = this.getRowClass.createDelegate(this);
+
+ view.enableRowBody = true;
+
+ grid.on('render', function(){
+ view.mainBody.on('mousedown', this.onMouseDown, this);
+ }, this);
+ },
+
+ getBodyContent : function(record, index){
+ if(!this.enableCaching){
+ return this.tpl.apply(record.data);
+ }
+ var content = this.bodyContent[record.id];
+ if(!content){
+ content = this.tpl.apply(record.data);
+ this.bodyContent[record.id] = content;
+ }
+ return content;
+ },
+
+ onMouseDown : function(e, t){
+ if(t.className == 'x-grid3-row-expander'){
+ e.stopEvent();
+ var row = e.getTarget('.x-grid3-row');
+ this.toggleRow(row);
+ }
+ },
+
+ renderer : function(v, p, record){
+ p.cellAttr = 'rowspan="2"';
+ return '<div class="x-grid3-row-expander"> </div>';
+ },
+
+ beforeExpand : function(record, body, rowIndex){
+ if(this.fireEvent('beforeexpand', this, record, body, rowIndex) !== false){
+ if(this.tpl && this.lazyRender){
+ body.innerHTML = this.getBodyContent(record, rowIndex);
+ }
+ return true;
+ }else{
+ return false;
+ }
+ },
+
+ toggleRow : function(row){
+ if(typeof row == 'number'){
+ row = this.grid.view.getRow(row);
+ }
+ this[Ext.fly(row).hasClass('x-grid3-row-collapsed') ? 'expandRow' : 'collapseRow'](row);
+ },
+
+ expandRow : function(row){
+ if(typeof row == 'number'){
+ row = this.grid.view.getRow(row);
+ }
+ var record = this.grid.store.getAt(row.rowIndex);
+ var body = Ext.DomQuery.selectNode('tr:nth(2) div.x-grid3-row-body', row);
+ if(this.beforeExpand(record, body, row.rowIndex)){
+ this.state[record.id] = true;
+ Ext.fly(row).replaceClass('x-grid3-row-collapsed', 'x-grid3-row-expanded');
+ this.fireEvent('expand', this, record, body, row.rowIndex);
+ }
+ },
+
+ collapseRow : function(row){
+ if(typeof row == 'number'){
+ row = this.grid.view.getRow(row);
+ }
+ var record = this.grid.store.getAt(row.rowIndex);
+ var body = Ext.fly(row).child('tr:nth(1) div.x-grid3-row-body', true);
+ if(this.fireEvent('beforecollapse', this, record, body, row.rowIndex) !== false){
+ this.state[record.id] = false;
+ Ext.fly(row).replaceClass('x-grid3-row-expanded', 'x-grid3-row-collapsed');
+ this.fireEvent('collapse', this, record, body, row.rowIndex);
+ }
+ }
+});
Copied: apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/about.css (from rev 1253, apps/opengeo/geoexplorer/branches/0.1.x/theme/app/about.css)
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/about.css (rev 0)
+++ apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/about.css 2009-07-14 19:54:24 UTC (rev 1254)
@@ -0,0 +1,35 @@
+body {
+ font-family: tahoma,arial,helvetica,sans-serif;
+ font-size: 10px;
+ background-color: white;
+}
+
+h2 {
+ text-align: center;
+ font-weight: bold;
+ font-size: 12px;
+}
+
+div.versioninfo {
+ text-align: center;
+}
+
+div.logo {
+ margin-left: auto;
+ margin-right: auto;
+ width: 100%;
+ text-align: center;
+ height: 70px;
+ background: url('img/GeoExt_Logo.png') center no-repeat;
+}
+
+h3 {
+ font-weight: bold;
+ margin-bottom: 0em;
+ font-size: 12px;
+}
+
+a {
+ display: block;
+}
+
Property changes on: apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/about.css
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/geoexplorer.css (from rev 1253, apps/opengeo/geoexplorer/branches/0.1.x/theme/app/geoexplorer.css)
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/geoexplorer.css (rev 0)
+++ apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/geoexplorer.css 2009-07-14 19:54:24 UTC (rev 1254)
@@ -0,0 +1,166 @@
+/* don't wrap lines on any tooltips */
+.x-tip {
+ white-space: nowrap;
+}
+
+/* get images on buttons with text to line up with those with no text */
+.x-btn-text-icon .x-btn-center .x-btn-text {
+ background-position: 0 3px;
+}
+
+/* apply some margin when using the row expander */
+.x-grid3-row-body p {
+ margin: 5px !important;
+}
+
+/* workaround for semi-alpha pixels in IE7: background needs to be the same
+ * as the toolbar's background color */
+.ext-ie .x-item-disabled .x-btn-text {
+ background-color: #EAEAEA;
+}
+
+.x-btn .icon-geoexplorer {
+ background-image: url(img/geoexplorer.png);
+}
+
+.x-btn .icon-addlayers {
+ background-image: url(img/silk/add.png);
+}
+
+.x-btn .icon-removelayers {
+ background-image: url(img/silk/delete.png);
+}
+
+.x-btn .icon-getfeatureinfo {
+ background-image: url(img/silk/information.png);
+}
+
+.x-btn .icon-save {
+ background-image: url(img/geosilk/map_save.png);
+}
+
+.x-btn .icon-measure {
+ background-image: url(img/geosilk/measure.png);
+}
+
+.icon-measure-length {
+ background-image: url(img/geosilk/ruler.png) !important;
+}
+
+.icon-measure-area {
+ background-image: url(img/geosilk/ruler_square.png) !important;
+}
+
+.x-btn .icon-zoom-in {
+ background-image: url(img/silk/magnifier_zoom_in.png);
+}
+
+.x-btn .icon-zoom-out {
+ background-image: url(img/silk/magnifier_zoom_out.png);
+}
+
+.x-btn .icon-zoom-previous {
+ background-image: url(img/silk/arrow_left.png);
+}
+
+.x-btn .icon-zoom-next {
+ background-image: url(img/silk/arrow_right.png);
+}
+
+.x-btn .icon-zoom-visible {
+ background-image: url(img/silk/arrow_out.png);
+}
+
+.x-btn .icon-pan {
+ background-image: url(img/geosilk/pan.png);
+}
+
+.legend-item {
+ margin: 0.5em 10px;
+}
+
+div.map-overlay {
+ z-index: 1000;
+ position: absolute;
+ right: 10px;
+ bottom: 10px;
+}
+
+div.map-overlay div.overlay-element {
+ display:inline;
+ float: left;
+ margin: 5px;
+}
+
+.overlay-scaleline {
+ bottom: 0px;
+ left: 0px;
+ margin-top: 0px;
+}
+
+/* Pan- and Zoom- Panel Styles*/
+
+.olControlPanPanel div {
+ background-image:url(http://extjs.cachefly.net/ext-2.2.1/resources/images/gray/panel/tool-sprites.gif);
+ height:15px;
+ width:15px;
+ /* workaround for button height in IE */
+ font-size:0px;
+}
+
+.olControlPanPanel .olControlPanNorthItemInactive {
+ background-position:15px -60px;
+ left:16px
+}
+.olControlPanPanel .olControlPanEastItemInactive {
+ background-position:15px -120px;
+ left: 30px;
+ top: 16px;
+}
+.olControlPanPanel .olControlPanSouthItemInactive {
+ background-position:15px -75px;
+ left: 16px;
+ top: 32px;
+}
+.olControlPanPanel .olControlPanWestItemInactive {
+ background-position:15px -105px;
+ left: 2px;
+ top: 16px;
+}
+
+.olControlZoomPanel {
+ left:21px;
+}
+
+.olControlZoomPanel div {
+ background-image:url(http://extjs.cachefly.net/ext-2.2.1/resources/images/gray/panel/tool-sprites.gif);
+ height:15px;
+ width:15px;
+ /* workaround for button height in IE */
+ font-size:0px;
+}
+
+.olControlZoomPanel .olControlZoomInItemInactive {
+ background-position:15px -240px;
+}
+
+.olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
+ display: none;
+}
+
+.olControlZoomPanel .olControlZoomOutItemInactive {
+ background-position:15px -255px;
+ top: 123px;
+}
+
+.olControlScaleLine {
+ font-family: tahoma,arial,helvetica,sans-serif;
+}
+
+/* position the zoom slider within map panel */
+.gx-zoomslider {
+ top: 90px;
+ left: 17px
+}
+
+
Property changes on: apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/geoexplorer.css
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/ie.css (from rev 1253, apps/opengeo/geoexplorer/branches/0.1.x/theme/app/ie.css)
===================================================================
--- apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/ie.css (rev 0)
+++ apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/ie.css 2009-07-14 19:54:24 UTC (rev 1254)
@@ -0,0 +1,12 @@
+div.map-overlay {
+ width: 240px;
+}
+
+.overlay-scalechooser {
+ width: 110px;
+}
+
+.overlay-scaleline {
+ width: 100px;
+ padding-bottom: 5px;
+}
Property changes on: apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/ie.css
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/img (from rev 1253, apps/opengeo/geoexplorer/branches/0.1.x/theme/app/img)
Property changes on: apps/opengeo/geoexplorer/branches/0.1.x/src/theme/app/img
___________________________________________________________________
Name: svn:mergeinfo
+
More information about the Commits
mailing list