Revision 44073 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/FLayers.java
FLayers.java | ||
---|---|---|
33 | 33 |
import java.util.ListIterator; |
34 | 34 |
import java.util.Set; |
35 | 35 |
import java.util.TreeSet; |
36 |
import java.util.function.Predicate; |
|
37 |
import org.apache.commons.lang3.StringUtils; |
|
36 | 38 |
|
37 | 39 |
import org.cresques.cts.ICoordTrans; |
38 | 40 |
import org.cresques.cts.IProjection; |
... | ... | |
43 | 45 |
import org.gvsig.fmap.dal.DataStore; |
44 | 46 |
import org.gvsig.fmap.dal.exception.DataException; |
45 | 47 |
import org.gvsig.fmap.dal.exception.ReadException; |
46 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
47 | 48 |
import org.gvsig.fmap.geom.primitive.Envelope; |
48 | 49 |
import org.gvsig.fmap.mapcontext.MapContext; |
49 | 50 |
import org.gvsig.fmap.mapcontext.MapContextLocator; |
... | ... | |
57 | 58 |
import org.gvsig.fmap.mapcontext.layers.operations.LayerNotFoundInCollectionException; |
58 | 59 |
import org.gvsig.fmap.mapcontext.layers.operations.LayersVisitable; |
59 | 60 |
import org.gvsig.fmap.mapcontext.layers.operations.LayersVisitor; |
61 |
import org.gvsig.fmap.mapcontext.layers.operations.SingleLayer; |
|
60 | 62 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
61 | 63 |
import org.gvsig.fmap.mapcontext.rendering.legend.styling.ILabelable; |
62 | 64 |
import org.gvsig.metadata.exceptions.MetadataException; |
63 | 65 |
import org.gvsig.tools.ToolsLocator; |
64 |
import org.gvsig.tools.dispose.Disposable; |
|
65 | 66 |
import org.gvsig.tools.dynobject.DynObjectSet; |
66 | 67 |
import org.gvsig.tools.dynobject.DynStruct; |
67 | 68 |
import org.gvsig.tools.dynobject.impl.MultiDynObjectSet; |
... | ... | |
71 | 72 |
import org.gvsig.tools.persistence.exception.PersistenceException; |
72 | 73 |
import org.gvsig.tools.task.Cancellable; |
73 | 74 |
import org.gvsig.tools.util.Callable; |
74 |
import org.gvsig.tools.visitor.VisitCanceledException; |
|
75 | 75 |
import org.gvsig.tools.visitor.Visitor; |
76 | 76 |
|
77 | 77 |
/** |
... | ... | |
106 | 106 |
/** |
107 | 107 |
* Useful for debug the problems during the implementation. |
108 | 108 |
*/ |
109 |
private static final Logger logger = LoggerFactory.getLogger(FLayers.class);
|
|
109 |
private static final Logger LOGGER = LoggerFactory.getLogger(FLayers.class);
|
|
110 | 110 |
|
111 | 111 |
public FLayers() { |
112 | 112 |
super(); |
113 | 113 |
layerCollectionListeners = new ArrayList(); |
114 | 114 |
layers = Collections.synchronizedList(new ArrayList()); |
115 | 115 |
} |
116 |
/* |
|
117 |
* (non-Javadoc) |
|
118 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#addLayerCollectionListener(com.iver.cit.gvsig.fmap.layers.LayerCollectionListener) |
|
119 |
*/ |
|
120 | 116 |
|
121 | 117 |
@Override |
122 | 118 |
public void addLayerCollectionListener(LayerCollectionListener listener) { |
... | ... | |
143 | 139 |
} |
144 | 140 |
} |
145 | 141 |
|
146 |
/* |
|
147 |
* (non-Javadoc) |
|
148 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#removeLayerCollectionListener(com.iver.cit.gvsig.fmap.layers.LayerCollectionListener) |
|
149 |
*/ |
|
150 | 142 |
@Override |
151 | 143 |
public void removeLayerCollectionListener(LayerCollectionListener listener) { |
152 | 144 |
layerCollectionListeners.remove(listener); |
... | ... | |
177 | 169 |
this.updateDrawVersion(); |
178 | 170 |
} |
179 | 171 |
|
180 |
/* |
|
181 |
* (non-Javadoc) |
|
182 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#addLayer(com.iver.cit.gvsig.fmap.layers.FLayer) |
|
183 |
*/ |
|
184 | 172 |
@Override |
185 | 173 |
public void addLayer(FLayer layer) { |
186 | 174 |
|
... | ... | |
235 | 223 |
|
236 | 224 |
callLayerAdded(LayerCollectionEvent.createLayerAddedEvent(layer)); |
237 | 225 |
} catch (CancelationException e) { |
238 |
logger.warn(e.getMessage());
|
|
226 |
LOGGER.warn(e.getMessage());
|
|
239 | 227 |
} |
240 | 228 |
} |
241 | 229 |
|
242 |
/* |
|
243 |
* (non-Javadoc) |
|
244 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#moveTo(int, int) |
|
245 |
*/ |
|
246 | 230 |
@Override |
247 | 231 |
public void moveTo(int from, int to) throws CancelationException { |
248 | 232 |
int newfrom = layers.size() - from - 1; |
... | ... | |
269 | 253 |
this.updateDrawVersion(); |
270 | 254 |
} |
271 | 255 |
|
272 |
/* |
|
273 |
* (non-Javadoc) |
|
274 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#removeLayer(com.iver.cit.gvsig.fmap.layers.FLayer) |
|
275 |
*/ |
|
276 | 256 |
@Override |
277 | 257 |
public void removeLayer(FLayer lyr) throws CancelationException { |
278 | 258 |
callLayerRemoving(LayerCollectionEvent.createLayerRemovingEvent(lyr)); |
... | ... | |
280 | 260 |
callLayerRemoved(LayerCollectionEvent.createLayerRemovedEvent(lyr)); |
281 | 261 |
} |
282 | 262 |
|
283 |
/* |
|
284 |
* (non-Javadoc) |
|
285 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#removeLayer(int) |
|
286 |
*/ |
|
287 | 263 |
@Override |
288 | 264 |
public void removeLayer(int idLayer) { |
289 | 265 |
FLayer lyr = (FLayer) layers.get(idLayer); |
... | ... | |
294 | 270 |
callLayerRemoved(LayerCollectionEvent.createLayerRemovedEvent(lyr)); |
295 | 271 |
} |
296 | 272 |
|
297 |
/* |
|
298 |
* (non-Javadoc) |
|
299 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#removeLayer(java.lang.String) |
|
300 |
*/ |
|
301 | 273 |
@Override |
302 | 274 |
public void removeLayer(String layerName) { |
303 | 275 |
FLayer lyr; |
... | ... | |
361 | 333 |
} |
362 | 334 |
} |
363 | 335 |
|
364 |
/* |
|
365 |
* (non-Javadoc) |
|
366 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#getVisibles() |
|
367 |
*/ |
|
368 | 336 |
@Override |
369 | 337 |
public FLayer[] getVisibles() { |
370 | 338 |
ArrayList array = new ArrayList(); |
... | ... | |
383 | 351 |
return (FLayer[]) array.toArray(new FLayer[0]); |
384 | 352 |
} |
385 | 353 |
|
386 |
/* |
|
387 |
* (non-Javadoc) |
|
388 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#getLayer(int) |
|
389 |
*/ |
|
390 | 354 |
@Override |
391 | 355 |
public FLayer getLayer(int index) { |
392 | 356 |
return (FLayer) layers.get(index); |
393 | 357 |
} |
394 | 358 |
|
395 |
/* |
|
396 |
* (non-Javadoc) |
|
397 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#getLayer(java.lang.String) |
|
398 |
*/ |
|
399 | 359 |
@Override |
400 |
public FLayer getLayer(String layerName) { |
|
401 |
for (int i = 0; i < layers.size(); i++) { |
|
402 |
FLayer lyr = ((FLayer) layers.get(i)); |
|
403 |
if (lyr.getName().compareToIgnoreCase(layerName) == 0) { |
|
404 |
return lyr; |
|
360 |
public FLayer getLayer(final String layerName) { |
|
361 |
if( StringUtils.isBlank(layerName) ) { |
|
362 |
return null; |
|
363 |
} |
|
364 |
for (FLayer layer : this.layers) { |
|
365 |
if( layer!=null && StringUtils.equalsIgnoreCase(layer.getName(), layerName) ) { |
|
366 |
return layer; |
|
405 | 367 |
} |
406 |
if (lyr instanceof FLayers) { |
|
407 |
List layerList = toPlainList(lyr); |
|
408 |
for (int j = 0; j < layerList.size(); j++) { |
|
409 |
FLayer lyr2 = ((FLayer) layerList.get(j)); |
|
410 |
if (lyr2.getName().compareToIgnoreCase(layerName) == 0) { |
|
411 |
return lyr2; |
|
368 |
if( layer instanceof FLayers ) { |
|
369 |
List<FLayer> theLayers = this.getLayers(new Predicate<FLayer>() { |
|
370 |
@Override |
|
371 |
public boolean test(FLayer layer) { |
|
372 |
return StringUtils.equalsIgnoreCase(layer.getName(), layerName); |
|
412 | 373 |
} |
374 |
}); |
|
375 |
if( theLayers.isEmpty() ) { |
|
376 |
return null; |
|
413 | 377 |
} |
378 |
return theLayers.get(0); |
|
414 | 379 |
} |
415 | 380 |
} |
416 | 381 |
return null; |
417 | 382 |
} |
418 | 383 |
|
419 |
private List toPlainList(FLayer layer) { |
|
420 |
return toPlainList(layer, new ArrayList()); |
|
384 |
public FLayer getLayer(final DataStore store) { |
|
385 |
List<FLayer> theLayers = this.getLayers(new Predicate<FLayer>() { |
|
386 |
@Override |
|
387 |
public boolean test(FLayer layer) { |
|
388 |
return layer instanceof SingleLayer && store == ((SingleLayer) layer).getDataStore(); |
|
389 |
} |
|
390 |
}); |
|
391 |
if( theLayers.isEmpty() ) { |
|
392 |
return null; |
|
393 |
} |
|
394 |
return theLayers.get(0); |
|
421 | 395 |
} |
396 |
|
|
397 |
private List<FLayer> toPlainList(FLayer layer) { |
|
398 |
return toPlainList(layer, new ArrayList<FLayer>(), null); |
|
399 |
} |
|
422 | 400 |
|
423 |
private List toPlainList(FLayer layer, List result) { |
|
401 |
private List<FLayer> toPlainList(FLayer layer, Predicate<FLayer> filter) { |
|
402 |
return toPlainList(layer, new ArrayList<FLayer>(), filter); |
|
403 |
} |
|
404 |
|
|
405 |
private List<FLayer> toPlainList(FLayer layer, List<FLayer> result, Predicate<FLayer> filter) { |
|
424 | 406 |
if (layer instanceof FLayers) { |
425 | 407 |
FLayers layerGroup = (FLayers) layer; |
426 | 408 |
for (int i = 0; i < layerGroup.getLayersCount(); i++) { |
427 |
toPlainList(layerGroup.getLayer(i), result); |
|
409 |
toPlainList(layerGroup.getLayer(i), result, filter);
|
|
428 | 410 |
} |
429 |
} else { |
|
411 |
} else if( filter==null || filter.test(layer) ) {
|
|
430 | 412 |
result.add(layer); |
431 | 413 |
} |
432 | 414 |
return result; |
433 | 415 |
} |
434 | 416 |
|
435 |
/* |
|
436 |
* (non-Javadoc) |
|
437 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#getLayersCount() |
|
438 |
*/ |
|
439 | 417 |
@Override |
440 | 418 |
public int getLayersCount() { |
441 | 419 |
return layers.size(); |
442 | 420 |
} |
443 | 421 |
|
444 |
/* |
|
445 |
* (non-Javadoc) |
|
446 |
* @see com.iver.cit.gvsig.fmap.layers.FLayer#draw(java.awt.image.BufferedImage, java.awt.Graphics2D, com.iver.cit.gvsig.fmap.ViewPort, com.iver.utiles.swing.threads.Cancellable, double) |
|
447 |
*/ |
|
448 | 422 |
@Override |
449 | 423 |
public void draw(BufferedImage image, Graphics2D g, ViewPort viewPort, |
450 | 424 |
Cancellable cancel, double scale) throws ReadException { |
... | ... | |
524 | 498 |
double dpi = 72; |
525 | 499 |
|
526 | 500 |
int resolution = properties.getPrintQuality(); |
527 |
if (resolution == PrintAttributes.PRINT_QUALITY_NORMAL) { |
|
528 |
dpi = 300; |
|
529 |
} else if (resolution == PrintAttributes.PRINT_QUALITY_HIGH) { |
|
530 |
dpi = 600; |
|
531 |
} else if (resolution == PrintAttributes.PRINT_QUALITY_DRAFT) { |
|
532 |
dpi = 72; |
|
501 |
switch (resolution) { |
|
502 |
case PrintAttributes.PRINT_QUALITY_NORMAL: |
|
503 |
dpi = 300; |
|
504 |
break; |
|
505 |
case PrintAttributes.PRINT_QUALITY_HIGH: |
|
506 |
dpi = 600; |
|
507 |
break; |
|
508 |
case PrintAttributes.PRINT_QUALITY_DRAFT: |
|
509 |
dpi = 72; |
|
510 |
break; |
|
511 |
default: |
|
512 |
break; |
|
533 | 513 |
} |
534 | 514 |
|
535 | 515 |
// TODO: A la hora de imprimir, isWithinScale falla, porque est? |
... | ... | |
619 | 599 |
if( fmap!=null ) { |
620 | 600 |
fmap.addLayerError(mesg); |
621 | 601 |
} |
622 |
logger.error(mesg, e);
|
|
602 |
LOGGER.error(mesg, e);
|
|
623 | 603 |
} |
624 | 604 |
|
625 | 605 |
} |
... | ... | |
633 | 613 |
return group; |
634 | 614 |
} |
635 | 615 |
|
636 |
/* |
|
637 |
* (non-Javadoc) |
|
638 |
* @see com.iver.cit.gvsig.fmap.layers.FLayer#getFullExtent() |
|
639 |
*/ |
|
640 | 616 |
@Override |
617 |
@SuppressWarnings("UseSpecificCatch") |
|
641 | 618 |
public Envelope getFullEnvelope() { |
642 | 619 |
Envelope rAux = null; |
643 | 620 |
boolean first = true; |
644 | 621 |
|
645 |
for (Iterator iter = layers.iterator(); iter.hasNext();) { |
|
646 |
FLayer capa = (FLayer) iter.next(); |
|
622 |
for (FLayer capa : layers) { |
|
647 | 623 |
try { |
648 | 624 |
if (first) { |
649 | 625 |
rAux = (Envelope) capa.getFullEnvelope().clone(); |
... | ... | |
652 | 628 |
rAux.add(capa.getFullEnvelope()); |
653 | 629 |
} |
654 | 630 |
} catch (Exception e) { |
655 |
logger.warn("Can't calculate the envelope of the layer group '"+this.getName()+"'.",e);
|
|
631 |
LOGGER.warn("Can't calculate the envelope of the layer group '"+this.getName()+"'.",e);
|
|
656 | 632 |
} |
657 | 633 |
} |
658 | 634 |
|
... | ... | |
757 | 733 |
state.set("mapContext", fmap); |
758 | 734 |
|
759 | 735 |
List layersToSave = new ArrayList(); |
760 |
Iterator iter = this.layers.iterator(); |
|
761 |
while (iter.hasNext()) { |
|
762 |
FLayer layer = (FLayer) iter.next(); |
|
736 |
for (FLayer layer : this.layers) { |
|
763 | 737 |
if (!layer.isTemporary()) { |
764 | 738 |
layersToSave.add(layer); |
765 | 739 |
} |
... | ... | |
784 | 758 |
} |
785 | 759 |
} |
786 | 760 |
|
787 |
/* |
|
788 |
* (non-Javadoc) |
|
789 |
* @see com.iver.cit.gvsig.fmap.layers.FLyrDefault#getMapContext() |
|
790 |
*/ |
|
791 | 761 |
@Override |
792 | 762 |
public MapContext getMapContext() { |
793 | 763 |
return fmap; |
794 | 764 |
} |
795 | 765 |
|
796 |
/* |
|
797 |
* (non-Javadoc) |
|
798 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#setAllActives(boolean) |
|
799 |
*/ |
|
800 | 766 |
@Override |
801 | 767 |
public void setAllActives(boolean active) { |
802 | 768 |
FLayer lyr; |
... | ... | |
811 | 777 |
} |
812 | 778 |
} |
813 | 779 |
|
814 |
/* |
|
815 |
* (non-Javadoc) |
|
816 |
* @see com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection#getActives() |
|
817 |
*/ |
|
780 |
public List<FLayer> getLayers(Predicate<FLayer> filter) { |
|
781 |
List<FLayer> theLayers = this.toPlainList(this, filter); |
|
782 |
return theLayers; |
|
783 |
} |
|
784 |
|
|
818 | 785 |
@Override |
819 | 786 |
public FLayer[] getActives() { |
820 |
List ret = new ArrayList(); |
|
821 |
LayersIterator it = new LayersIterator(this) { |
|
822 |
|
|
787 |
List<FLayer> activeLayers = this.getLayers(new Predicate<FLayer>() { |
|
823 | 788 |
@Override |
824 |
public boolean evaluate(FLayer layer) {
|
|
789 |
public boolean test(FLayer layer) {
|
|
825 | 790 |
return layer.isActive(); |
826 | 791 |
} |
827 |
|
|
828 |
}; |
|
829 |
|
|
830 |
while (it.hasNext()) { |
|
831 |
ret.add(it.next()); |
|
832 |
} |
|
833 |
return (FLayer[]) ret.toArray(new FLayer[0]); |
|
792 |
}); |
|
793 |
return (FLayer[]) activeLayers.toArray(new FLayer[activeLayers.size()]); |
|
834 | 794 |
} |
835 | 795 |
|
836 |
/* |
|
837 |
* (non-Javadoc) |
|
838 |
* @see com.iver.cit.gvsig.fmap.layers.FLyrDefault#getMinScale() |
|
839 |
*/ |
|
840 | 796 |
@Override |
841 | 797 |
public double getMinScale() { |
842 | 798 |
return -1; // La visibilidad o no la controla cada capa |
843 | 799 |
// dentro de una colecci?n |
844 | 800 |
} |
845 |
/* |
|
846 |
* (non-Javadoc) |
|
847 |
* @see com.iver.cit.gvsig.fmap.layers.FLyrDefault#getMaxScale() |
|
848 |
*/ |
|
849 | 801 |
|
850 | 802 |
@Override |
851 | 803 |
public double getMaxScale() { |
852 | 804 |
return -1; |
853 | 805 |
} |
854 |
/* |
|
855 |
* (non-Javadoc) |
|
856 |
* @see com.iver.cit.gvsig.fmap.layers.FLyrDefault#setMinScale(double) |
|
857 |
*/ |
|
858 | 806 |
|
859 | 807 |
@Override |
860 | 808 |
public void setMinScale(double minScale) { |
861 |
for (Iterator iter = layers.iterator(); iter.hasNext();) { |
|
862 |
FLayer lyr = (FLayer) iter.next(); |
|
809 |
for (FLayer lyr : layers) { |
|
863 | 810 |
lyr.setMinScale(minScale); |
864 | 811 |
} |
865 | 812 |
} |
866 |
/* |
|
867 |
* (non-Javadoc) |
|
868 |
* @see com.iver.cit.gvsig.fmap.layers.FLyrDefault#setMaxScale(double) |
|
869 |
*/ |
|
870 | 813 |
|
871 | 814 |
@Override |
872 | 815 |
public void setMaxScale(double maxScale) { |
873 |
for (Iterator iter = layers.iterator(); iter.hasNext();) { |
|
874 |
FLayer lyr = (FLayer) iter.next(); |
|
816 |
for (FLayer lyr : layers) { |
|
875 | 817 |
lyr.setMinScale(maxScale); |
876 | 818 |
} |
877 | 819 |
} |
878 |
/* |
|
879 |
* (non-Javadoc) |
|
880 |
* @see com.iver.cit.gvsig.fmap.layers.FLyrDefault#setActive(boolean) |
|
881 |
*/ |
|
882 | 820 |
|
883 | 821 |
@Override |
884 | 822 |
public void setActive(boolean b) { |
885 | 823 |
super.setActive(b); |
886 |
for (int i = 0; i < layers.size(); i++) {
|
|
887 |
((FLayer) layers.get(i)).setActive(b);
|
|
824 |
for (FLayer layer : this.layers) {
|
|
825 |
layer.setActive(b);
|
|
888 | 826 |
} |
889 | 827 |
} |
890 |
/* (non-Javadoc) |
|
891 |
* @see com.iver.cit.gvsig.fmap.layers.FLyrDefault#addLayerListener(com.iver.cit.gvsig.fmap.layers.LayerListener) |
|
892 |
*/ |
|
893 | 828 |
|
894 | 829 |
@Override |
895 | 830 |
public boolean addLayerListener(LayerListener o) { |
896 |
for (int i = 0; i < layers.size(); i++) {
|
|
897 |
((FLayer) layers.get(i)).addLayerListener(o);
|
|
831 |
for (FLayer layer : this.layers) {
|
|
832 |
layer.addLayerListener(o);
|
|
898 | 833 |
} |
899 | 834 |
return true; |
900 | 835 |
} |
... | ... | |
929 | 864 |
return new MultiDynObjectSet(innerSets); |
930 | 865 |
} |
931 | 866 |
|
932 |
/* |
|
933 |
* (non-Javadoc) |
|
934 |
* @see com.iver.cit.gvsig.fmap.layers.FLyrDefault#getTocImageIcon() |
|
935 |
*/ |
|
936 | 867 |
@Override |
937 | 868 |
public String getTocImageIcon() { |
938 | 869 |
return "layer-icon-group"; |
... | ... | |
977 | 908 |
} |
978 | 909 |
} |
979 | 910 |
|
980 |
/* |
|
981 |
* (non-Javadoc) |
|
982 |
* |
|
983 |
* @see org.gvsig.metadata.Metadata#getMetadataID() |
|
984 |
*/ |
|
985 | 911 |
@Override |
986 | 912 |
public Object getMetadataID() throws MetadataException { |
987 | 913 |
StringBuilder strb = new StringBuilder(); |
... | ... | |
998 | 924 |
|
999 | 925 |
} |
1000 | 926 |
|
1001 |
/* |
|
1002 |
* (non-Javadoc) |
|
1003 |
* |
|
1004 |
* @see org.gvsig.metadata.Metadata#getMetadataChildren() |
|
1005 |
*/ |
|
1006 | 927 |
@Override |
1007 | 928 |
public Set getMetadataChildren() { |
1008 | 929 |
Set ret = new TreeSet(); |
... | ... | |
1013 | 934 |
return ret; |
1014 | 935 |
} |
1015 | 936 |
|
1016 |
/* |
|
1017 |
* (non-Javadoc) |
|
1018 |
* |
|
1019 |
* @see org.gvsig.metadata.Metadata#getMetadataName() |
|
1020 |
*/ |
|
1021 | 937 |
@Override |
1022 | 938 |
public String getMetadataName() throws MetadataException { |
1023 | 939 |
StringBuilder strb = new StringBuilder(); |
... | ... | |
1076 | 992 |
@Override |
1077 | 993 |
protected void doDispose() throws BaseException { |
1078 | 994 |
if (layers != null) { |
1079 |
for (int i = 0; i < layers.size(); i++) {
|
|
1080 |
dispose((Disposable) layers.get(i));
|
|
995 |
for (FLayer layer : this.layers) {
|
|
996 |
dispose(layer);
|
|
1081 | 997 |
} |
1082 | 998 |
} |
1083 | 999 |
} |
... | ... | |
1160 | 1076 |
} |
1161 | 1077 |
|
1162 | 1078 |
public FLayer getFirstActiveLayer() { |
1163 |
LayersIterator it = new LayersIterator(this) {
|
|
1079 |
List<FLayer> theLayers = this.getLayers(new Predicate<FLayer>() {
|
|
1164 | 1080 |
@Override |
1165 |
public boolean evaluate(FLayer layer) {
|
|
1081 |
public boolean test(FLayer layer) {
|
|
1166 | 1082 |
return layer.isActive(); |
1167 | 1083 |
} |
1168 |
}; |
|
1169 |
if( it.hasNext() ) {
|
|
1170 |
return (FLayer) it.next();
|
|
1084 |
});
|
|
1085 |
if( theLayers.isEmpty() ) {
|
|
1086 |
return null;
|
|
1171 | 1087 |
} |
1172 |
return null;
|
|
1088 |
return theLayers.get(0);
|
|
1173 | 1089 |
} |
1174 | 1090 |
|
1175 | 1091 |
public FLyrVect getFirstActiveVectorLayer() { |
1176 |
LayersIterator it = new LayersIterator(this) {
|
|
1092 |
List<FLayer> theLayers = this.getLayers(new Predicate<FLayer>() {
|
|
1177 | 1093 |
@Override |
1178 |
public boolean evaluate(FLayer layer) {
|
|
1094 |
public boolean test(FLayer layer) {
|
|
1179 | 1095 |
return layer.isActive() && layer instanceof FLyrVect; |
1180 | 1096 |
} |
1181 |
}; |
|
1182 |
if( it.hasNext() ) {
|
|
1183 |
return (FLyrVect) it.next();
|
|
1097 |
});
|
|
1098 |
if( theLayers.isEmpty() ) {
|
|
1099 |
return null;
|
|
1184 | 1100 |
} |
1185 |
return null;
|
|
1101 |
return (FLyrVect) theLayers.get(0);
|
|
1186 | 1102 |
} |
1187 | 1103 |
|
1188 | 1104 |
@Override |
... | ... | |
1191 | 1107 |
} |
1192 | 1108 |
|
1193 | 1109 |
public Iterator<FLayer> deepiterator() { |
1194 |
List layers = toPlainList(this);
|
|
1195 |
return layers.iterator();
|
|
1110 |
List theLayers = toPlainList(this);
|
|
1111 |
return theLayers.iterator();
|
|
1196 | 1112 |
} |
1197 | 1113 |
|
1198 | 1114 |
@Override |
Also available in: Unified diff