//add listener to the current map
addMapListener();
layerList = new LinkedList<ILayer>();
int work = 0;
for( int i = request.layers.size()-1; i > -1; i-- ) {
ILayer layer = request.layers.get(i); //navigate the list backwards
monitor.subTask( layer.getName() );
monitor.worked( ++work );
List<ILayer> currentLayerList = ApplicationGIS.getActiveMap().getMapLayers();
if (!currentLayerList.contains(layer)) continue;
if( !layer.isVisible() ) continue;
if( !layer.getInteraction(Interaction.INFO)) continue;
//if( !layer.isApplicable( "information" )) continue;
//add listener to the current layer and add that layer to be processed.
addLayerListener(layer);
layerList.add(layer);
if( layer.hasResource( FeatureSource.class ) ) {
try {
List<SimpleFeature> more = DataStoreDescribeLayer.info2( layer, request.bbox, monitor );
if( !more.isEmpty() ) {
set.addAll( more );
}
}
catch( Throwable t ) {
InfoPlugin.log( "Information request "+layer.getName()+" failed "+t, t ); //$NON-NLS-1$ //$NON-NLS-2$
}
continue;
}
if( layer.hasResource( GridCoverage.class ) ) {
try {
CoveragePointInfo hit = CoverageDescribeLayer.info2( layer, request.bbox, monitor );
if( hit != null ) set.add( hit );
}
catch( Throwable t ) {
InfoPlugin.log( "Information request "+layer.getName()+" failed "+t, t ); //$NON-NLS-1$ //$NON-NLS-2$
}
continue;
}
if( layer.hasResource( Layer.class ) ) {
try {
Layer wmsLayer = layer.getResource(Layer.class, new NullProgressMonitor());
if( wmsLayer.isQueryable()){
LayerPointInfo hit = WMSDescribeLayer.info2( layer, request.bbox );
if( hit != null ) {
set.add( hit );
}
}
}
catch( Throwable t ) {
InfoPlugin.log( "Information request "+layer.getName()+" failed "+t, t ); //$NON-NLS-1$ //$NON-NLS-2$
t.printStackTrace();
}
continue;
}
}