%@ 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('');