Revision 39059 branches/v2_0_0_prep/libraries/libFMap_mapcontext/src/org/gvsig/fmap/mapcontext/impl/DefaultMapContextDrawer.java
DefaultMapContextDrawer.java | ||
---|---|---|
10 | 10 |
import org.gvsig.compat.CompatLocator; |
11 | 11 |
import org.gvsig.compat.print.PrintAttributes; |
12 | 12 |
import org.gvsig.fmap.dal.exception.ReadException; |
13 |
import org.gvsig.fmap.geom.primitive.Envelope; |
|
13 | 14 |
import org.gvsig.fmap.mapcontext.MapContext; |
14 | 15 |
import org.gvsig.fmap.mapcontext.MapContextDrawer; |
15 | 16 |
import org.gvsig.fmap.mapcontext.ViewPort; |
16 | 17 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
18 |
import org.gvsig.fmap.mapcontext.layers.FLayerHidesArea; |
|
17 | 19 |
import org.gvsig.fmap.mapcontext.layers.FLayers; |
18 | 20 |
import org.gvsig.fmap.mapcontext.layers.LayerDrawEvent; |
19 | 21 |
import org.gvsig.fmap.mapcontext.layers.LayersIterator; |
... | ... | |
82 | 84 |
cachedImage = new CachedImage(); |
83 | 85 |
// Draw all layers |
84 | 86 |
firstLayerToDraw = 0; |
85 |
lastLayerToDraw = drawList.getLayerCount() - 1; |
|
87 |
//lastLayerToDraw = drawList.getLayerCount() - 1; |
|
88 |
lastLayerToDraw = drawList.getLastLayerVisible(viewPort); |
|
86 | 89 |
} else { |
87 | 90 |
// Draw the first group of layers without changes to be cached |
88 | 91 |
// next time |
... | ... | |
275 | 278 |
return this.layers.size(); |
276 | 279 |
} |
277 | 280 |
|
281 |
public int getLastLayerVisible(ViewPort viewPort) { |
|
282 |
Envelope area = viewPort.getAdjustedEnvelope(); |
|
283 |
for( int n=0; n<this.layers.size()-1; n++ ) { |
|
284 |
FLayer layer = (FLayer) this.layers.get(n); |
|
285 |
if( layer instanceof FLayerHidesArea ) { |
|
286 |
if( ((FLayerHidesArea)(layer)).hidesThisArea(area) ) { |
|
287 |
return n; |
|
288 |
} |
|
289 |
} |
|
290 |
} |
|
291 |
return this.layers.size()-1; |
|
292 |
} |
|
293 |
|
|
278 | 294 |
private boolean hasChanged(FLayer layer, int pos) { |
279 | 295 |
FLayer previous = (FLayer) this.previosList.layers.get(pos); |
280 | 296 |
// String previousName = previous.getName(); |
Also available in: Unified diff