<%-- $HeadURL$ This file is part of deegree, http://deegree.org/ Copyright (C) 2001-2009 by: - Department of Geography, University of Bonn - and - lat/lon GmbH - This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Contact information: lat/lon GmbH Aennchenstr. 19, 53177 Bonn Germany http://lat-lon.de/ Department of Geography, University of Bonn Prof. Dr. Klaus Greve Postfach 1147, 53001 Bonn Germany http://www.geographie.uni-bonn.de/deegree/ e-mail: info@deegree.org --%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="org.deegree.framework.util.CharsetUtils" %> <%@ page import="org.deegree.enterprise.WebUtils" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <% int width = Integer.parseInt( request.getParameter( "mapWidth" ) ); int height = Integer.parseInt( request.getParameter( "mapHeight" ) ); String geomTypes = request.getParameter( "geomTypes" ); String defaultGeomType = geomTypes.split( ";" )[0]; boolean validateGeom = Boolean.valueOf( request.getParameter( "validateGeometry" ) ) ; //UT: TODO check parameter availability String[] formLabels = request.getParameter( "formLabels" ).split( ";" ); String[] formTemplates = request.getParameter( "formTemplates" ).split( ";" ); String[] featureTypes = request.getParameter( "featureTypes" ).split( ";" ); %> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="author" content="lat/lon GmbH" /> <meta name="KeyWords" content="deegree OGC iGeoPortal lat/lon" /> <meta name="audience" content="" /> <title>Digitizer</title> <link href="./../../css/deegree.css" rel="stylesheet" type="text/css" /> <script language="JavaScript1.2" type="text/javascript" src="digitizer.js"></script> <script language="JavaScript1.2" type="text/javascript" src="geometries.js"></script> <script language="JavaScript1.2" type="text/javascript" src="digitizer_utils.js"></script> <script language="JavaScript1.2" type="text/javascript" src="../../mapmodel.js"></script> <script language="JavaScript1.2" type="text/javascript" src="../../wmsrequestfactory.js"></script> <script language="JavaScript1.2" type="text/javascript" src="../../javascript/geotransform.js"></script> <script language="JavaScript1.2" type="text/javascript" src="../../javascript/envelope.js"></script> <script language="JavaScript1.2" type="text/javascript" src="../../javascript/wz_jsgraphics.js"></script> <script language="JavaScript1.2" type="text/javascript" src="../../javascript/rpc.js"></script> <script language="JavaScript1.2" type="text/javascript" src="../../javascript/layerutils.js"></script> <script language="JavaScript1.2" type="text/javascript"> <!-- // var templateDoc = null; var geomCheckerProxy = null; var geomType = '<%= defaultGeomType %>'; var digitizer; var geoTrans; var mapDocument; var isNav = true; var geometry = null; var crs = opener.parent.controller.mapModel.getSrs(); var mapLeft = <%= request.getParameter( "mapLeft" ) %>; var mapTop = 0; //<!-- don't do this request.getParameter( "mapTop" ) --> var isFirstPoint = true; var selectedTemplate = "<%= formTemplates[0] %>"; // default value var selectedFeatureType = "<%= featureTypes[0] %>"; // default value var formToFeatureTypeMap = new Array(); <% for (int i = 0; i < formTemplates.length; i ++ ) { // formToFeatureTypeMap["nameOfFormTemplate"] = "nameOfFeatureType"; out.println( "formToFeatureTypeMap[\"" + formTemplates[i] + "\"] = \"" + featureTypes[i] + "\";" ); } %> function swapTemplate( list ) { // change template in iframe templatePath = list.value; var im = document.getElementById( "templateWindow" ); im.src = templatePath; // store chosen template name in variable var tmp = templatePath.split( "<%=WebUtils.getAbsoluteContextPath(request)%>/" ); // second array item is the template name as given in the module configuration selectedTemplate = tmp[1]; // store corresponding featureType in variable selectedFeatureType = formToFeatureTypeMap[selectedTemplate]; } function init(){ geomCheckerProxy.initializeModule(); var col = document.getElementById( 'leftCol' ); col.setAttribute( 'width', mapLeft + 'px'); initMap(); paintMap(); initDigitizer(); initEventHandling(); } function sendRequest(){ if( geometry == null ){ alert( 'Please digitize a geometry.' ); return; } // for details on params see digitizer_rpcRequest_definition.xml // set first rpc param (param[0]) var params = "<param><value><string><![CDATA[" + selectedFeatureType + "]]></string></value></param>"; // set second and more rpc params (param[1] .. param[n]) if ( templateDoc != null ){ params += templateDoc.getRPCFragment(); } var rpc = createMethodCall( 'dig:digitizeFeature', params, '<%= CharsetUtils.getSystemCharset() %>' ); document.getElementById( 'hidden_dig_rpc' ).value = rpc; // TODO: comment out the next line (the alert) ... alert( "The digizer module needs to be configured properly.\nPlease refer to the documentation for details.\nThe WFS-T request will be aborted." ); // TODO: ... and comment in the following line ( document.submit() ) //document.getElementById( 'dig_form' ).submit(); digitizer.clear(); paintProgress(); // TODO: comment out the next line ( window.close(); ) window.close(); } /* * paint a new layer into the window, containing a progress bar. */ function paintProgress() { var layer = createLayer( document, "progress", "progress", 350, 250, 230, 183, 1000, null, true ); createImage( "../../images/progress.gif", document, layer, 230 , 183, "progressIMG" ); document.getElementsByTagName( 'body' )[0].appendChild( layer ); } function initDigitizer(){ var lineColor = "<%= request.getParameter("lineColor") %>"; digitizer = new Digitizer( <%= width %>, <%= height %>, mapLeft, 0, lineColor ); digitizer.setDocument(document); digitizer.init(); } function paintMap() { var mm = opener.parent.controller.mapModel; var bb = '<%=request.getParameter( "bbox" )%>'.split( ',' ); var bbox = new Envelope( parseFloat( bb[0] ), parseFloat( bb[1] ), parseFloat( bb[2] ), parseFloat( bb[3] ) ); var env = ensureAspectRatio( bbox, <%= width %>, <%= height %> ); var llist = mm.getLayerList(); var lGroups = mm.getLayerList().getLayerGroups(); var localMapModel = new MapModel( llist, mm.getSrs(), env, <%=width %>, <%=height %> ); var factory = new WMSRequestFactory(); var sid = null; if( opener.parent.controller.vSessionKeeper != null ){ sid = opener.parent.controller.vSessionKeeper.id; } for( var i = 0; i < lGroups.length; ++i ){ var src = factory.createGetMapRequest( lGroups[i], localMapModel, sid ); document.getElementById( "image" + i ).src = src; } //UT deviating from normal FIX IT: +mapLeft and top, if you will geoTrans = new GeoTransform( env.minx, env.miny, env.maxx, env.maxy, 0 + mapLeft, 0, <%= width %> + mapLeft, <%= height %> ); } function doCheckGeometry(){ <% if( validateGeom ){ %> updateMesgField( 'Checking geometry...', 'background-color:#77FF77'); geomCheckerProxy.checkGeometry( geometry ); <% } else { out.println("//Nothing to validate"); } %> } // --> </script> </head> <body class="pDigitizerWindow" onload="init();" onunload="digitizer.clear();" marginheight="0" marginwidth="0"> <% if( validateGeom ){ %> <iframe src="geom_checker_proxy.jsp" id="geomCheckerProxy" height="0" width="0" frameborder="0" ></iframe> <% } %> <form action="<%= WebUtils.getAbsoluteContextPath(request)%>/control" id="dig_form" method="post"> <input id="hidden_dig_rpc" name="rpc" type="hidden" value="" /> </form> <table border="0" width="100%"> <tr> <td width="150px" id="leftCol" > <% if( formLabels.length > 1 ){ %> <select id="templateChooser" onchange="swapTemplate( this )"> <% for( int i = 0; i < formLabels.length; i++ ){ %> <option value="<%= WebUtils.getAbsoluteContextPath(request) + "/" +formTemplates[i] %>"> <%= formLabels[i] %></option> <% } %> </select> <% } else { %> <p><b><%=formLabels[0] %></b></p> <% } %> </td> </tr> <tr> <td> <iframe id="templateWindow" src="<%= WebUtils.getAbsoluteContextPath(request) + "/" + formTemplates[0] %>" frameborder="0" width="100%" height="450px"></iframe> </td> </tr> <tr> <td> <jsp:include flush="true" page="geom_control.jsp?geomTypes=<%= geomTypes %>"></jsp:include> </td> </tr> </table> </body> </html>