<%-- $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="java.io.BufferedReader" %> <%@ page import="java.io.File" %> <%@ page import="java.io.FileReader" %> <%@ page import="org.deegree.datatypes.QualifiedName" %> <%@ page import="org.deegree.model.feature.Feature" %> <%@ page import="org.deegree.model.feature.FeatureCollection" %> <%@ page import="org.deegree.model.feature.FeatureProperty" %> <%@ page import="org.deegree.model.feature.GMLFeatureCollectionDocument" %> <% //System.out.println("... calling from gaz_freeSearchResult.jsp ... "); FeatureCollection fc = null; if ( request.getAttribute( "RESULT" ) instanceof GMLFeatureCollectionDocument ) { GMLFeatureCollectionDocument gmlFcDoc = (GMLFeatureCollectionDocument) request.getAttribute( "RESULT" ); fc = gmlFcDoc.parse(); } else if ( request.getAttribute( "RESULT" ) instanceof FeatureCollection ) { fc = (FeatureCollection) request.getAttribute( "RESULT" ); } %> var select = parent.document.getElementById( "resultID" ); for ( i = select.options.length; i > 0 ; i-- ) { select.removeChild( select[i-1] ); } var opt = parent.document.createElement('option'); var text = parent.document.createTextNode('... select'); opt.appendChild( text ); opt.setAttribute( 'value', 'dummy|...' ); select.appendChild( opt ); <% String key = null; String value = null; boolean isException = false; String errorMsg = null; for ( int i = 0; i < fc.size(); i++) { Feature feat = fc.getFeature( i ); FeatureProperty[] fps = feat.getProperties(); String path2Dir = request.getSession( true ).getServletContext().getRealPath( "/" ); if ( !path2Dir.startsWith( "/" ) ) { path2Dir = '/' + path2Dir; } File ftProps = new File( path2Dir + "modules/gazetteer/featuretype2property.properties" ); String[] lineParts = null; //String featureTypeName = feat.getName().getAsString(); //app:MyFeatureType //String featureTypeName = feat.getName().getLocalName(); //MyFeatureType String featureTypeName = feat.getName().getFormattedString(); //{http://www.deegree.org/app}:MyFeatureType if ( ftProps.exists() ) { String line = null; BufferedReader buffer = new BufferedReader( new FileReader( ftProps.getCanonicalPath() ) ); while ( ( line = buffer.readLine() ) != null ) { if ( line.indexOf( featureTypeName ) == 0 ) { break; } } if ( line != null && line.length() > 0 ) { lineParts = line.split( "=" ); if ( lineParts.length != 2 ) { errorMsg = "ERROR: The file 'featuretype2property.properties' contains an invalid value for " + featureTypeName; isException = true; } } else { errorMsg = "ERROR: The file 'featuretype2property.properties' contains no value for " + featureTypeName; isException = true; } } if ( !isException ) { String part1 = lineParts[1].substring( 0, lineParts[1].indexOf( "|" ) ); String part2 = lineParts[1].substring( lineParts[1].indexOf( "|" ) + 1 ); for ( int j = 0; j < fps.length; j++ ) { QualifiedName keyProp = new QualifiedName( part2, fps[j].getName().getNamespace() ); if ( keyProp.equals( fps[j].getName() ) ) { key = (String) fps[j].getValue(); } } for ( int j = 0; j < fps.length; j++ ) { QualifiedName valueProp = new QualifiedName( part1, fps[j].getName().getNamespace() ); if ( valueProp.equals( fps[j].getName() ) ) { value = (String) fps[j].getValue(); } } } //System.out.println( "key = " + key + " - value = " + value ); if ( key != null && value != null ) { %> opt = parent.document.createElement('option'); text = parent.document.createTextNode( '<%=key %>' ); opt.appendChild( text ); opt.setAttribute( 'value', '<%=value %>' ); select.appendChild( opt ); <% } } if ( isException ) { System.out.println( errorMsg ); %> for ( i = select.options.length; i > 0 ; i--) { select.removeChild( select[i-1] ); } alert( "<%=errorMsg %>" ); <% } %> parent.setMessage('\u00A0');