Revision 42811 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/FLyrDefault.java
FLyrDefault.java | ||
---|---|---|
26 | 26 |
import java.awt.Image; |
27 | 27 |
import java.awt.geom.Point2D; |
28 | 28 |
import java.net.URI; |
29 |
import java.util.ArrayList;
|
|
29 |
import java.util.HashSet;
|
|
30 | 30 |
import java.util.Iterator; |
31 | 31 |
import java.util.List; |
32 | 32 |
import java.util.Map; |
33 |
import java.util.Set; |
|
33 | 34 |
|
34 | 35 |
import org.cresques.cts.ICoordTrans; |
35 | 36 |
import org.cresques.cts.IProjection; |
... | ... | |
150 | 151 |
* @see #removeLayerListener(LayerListener) |
151 | 152 |
* @see #callEditionChanged(LayerEvent) |
152 | 153 |
*/ |
153 |
protected ArrayList layerListeners = new ArrayList();
|
|
154 |
protected Set<LayerListener> layerListeners = new HashSet<>();
|
|
154 | 155 |
|
155 | 156 |
//by default, all is active, visible and avalaible |
156 | 157 |
/** |
... | ... | |
434 | 435 |
* @see com.iver.cit.gvsig.fmap.layers.FLayer#addLayerListener(com.iver.cit.gvsig.fmap.layers.LayerListener) |
435 | 436 |
*/ |
436 | 437 |
public boolean addLayerListener(LayerListener o) { |
437 |
if (layerListeners.contains(o)) {
|
|
438 |
return false;
|
|
439 |
}
|
|
440 |
return layerListeners.add(o);
|
|
438 |
if( o == null ) {
|
|
439 |
return true;
|
|
440 |
}
|
|
441 |
return layerListeners.add(o);
|
|
441 | 442 |
} |
442 | 443 |
/* |
443 | 444 |
* (non-Javadoc) |
... | ... | |
457 | 458 |
* |
458 | 459 |
*/ |
459 | 460 |
private void callDrawValueChanged(LayerEvent e) { |
460 |
for (Iterator iter = layerListeners.iterator(); iter.hasNext();) { |
|
461 |
LayerListener listener = (LayerListener) iter.next(); |
|
462 |
|
|
463 |
listener.drawValueChanged(e); |
|
464 |
} |
|
461 |
for (LayerListener listener : this.layerListeners) { |
|
462 |
try { |
|
463 |
listener.drawValueChanged(e); |
|
464 |
} catch (Exception ex) { |
|
465 |
logger.warn("Error calling listener '"+listener.toString()+"'.", ex); |
|
466 |
} |
|
467 |
} |
|
465 | 468 |
} |
466 | 469 |
/** |
467 | 470 |
* Called by the method {@linkplain #setName(String)}. Notifies all listeners associated to this layer, |
... | ... | |
472 | 475 |
* @see #setName(String) |
473 | 476 |
*/ |
474 | 477 |
private void callNameChanged(LayerEvent e) { |
475 |
for (Iterator iter = layerListeners.iterator(); iter.hasNext();) { |
|
476 |
LayerListener listener = (LayerListener) iter.next(); |
|
477 |
|
|
478 |
listener.nameChanged(e); |
|
479 |
} |
|
478 |
for (LayerListener listener : this.layerListeners) { |
|
479 |
try { |
|
480 |
listener.nameChanged(e); |
|
481 |
} catch (Exception ex) { |
|
482 |
logger.warn("Error calling listener '"+listener.toString()+"'.", ex); |
|
483 |
} |
|
484 |
} |
|
480 | 485 |
} |
481 | 486 |
|
482 | 487 |
/** |
... | ... | |
488 | 493 |
* @see #setVisible(boolean) |
489 | 494 |
*/ |
490 | 495 |
private void callVisibilityChanged(LayerEvent e) { |
491 |
for (Iterator iter = layerListeners.iterator(); iter.hasNext();) { |
|
492 |
LayerListener listener = (LayerListener) iter.next(); |
|
493 |
|
|
494 |
listener.visibilityChanged(e); |
|
495 |
} |
|
496 |
for (LayerListener listener : this.layerListeners) { |
|
497 |
try { |
|
498 |
listener.visibilityChanged(e); |
|
499 |
} catch (Exception ex) { |
|
500 |
logger.warn("Error calling listener '"+listener.toString()+"'.", ex); |
|
501 |
} |
|
502 |
} |
|
496 | 503 |
} |
497 | 504 |
|
498 | 505 |
/** |
... | ... | |
502 | 509 |
* @param e a layer event with the name of the property that has changed |
503 | 510 |
* |
504 | 511 |
* @see #setActive(boolean) |
505 |
*/ |
|
506 |
private void callActivationChanged(LayerEvent e) { |
|
507 |
for (Iterator iter = layerListeners.iterator(); iter.hasNext();) { |
|
508 |
LayerListener listener = (LayerListener) iter.next(); |
|
512 |
*/ |
|
513 |
private void callActivationChanged(LayerEvent e) { |
|
514 |
for (LayerListener listener : this.layerListeners) { |
|
515 |
try { |
|
516 |
listener.activationChanged(e); |
|
517 |
} catch (Exception ex) { |
|
518 |
logger.warn("Error calling listener '"+listener.toString()+"'.", ex); |
|
519 |
} |
|
520 |
} |
|
521 |
} |
|
509 | 522 |
|
510 |
listener.activationChanged(e); |
|
511 |
} |
|
512 |
} |
|
513 |
|
|
514 | 523 |
/** |
515 | 524 |
* Returns the virtual layers associated to this layer. |
516 | 525 |
* |
... | ... | |
640 | 649 |
* @see #setEditing(boolean) |
641 | 650 |
*/ |
642 | 651 |
protected void callEditionChanged(LayerEvent e) { |
643 |
for (Iterator iter = layerListeners.iterator(); iter.hasNext();) { |
|
644 |
LayerListener listener = (LayerListener) iter.next(); |
|
645 |
|
|
646 |
listener.editionChanged(e); |
|
647 |
} |
|
648 |
} |
|
652 |
for (LayerListener listener : this.layerListeners) { |
|
653 |
try { |
|
654 |
listener.editionChanged(e); |
|
655 |
} catch (Exception ex) { |
|
656 |
logger.warn("Error calling listener '"+listener.toString()+"'.", ex); |
|
657 |
} |
|
658 |
} |
|
659 |
} |
|
660 |
|
|
649 | 661 |
/* |
650 | 662 |
* (non-Javadoc) |
651 | 663 |
* @see com.iver.cit.gvsig.fmap.layers.FLayer#isEditing() |
... | ... | |
754 | 766 |
* |
755 | 767 |
* @see com.iver.cit.gvsig.fmap.layers.FLayer#addError(BaseException) |
756 | 768 |
*/ |
769 |
@Override |
|
757 | 770 |
public void addError(BaseException exception){ |
758 | 771 |
status.addLayerError(exception); |
759 | 772 |
} |
773 |
|
|
774 |
@Override |
|
775 |
public void setError(Exception ex) { |
|
776 |
this.status.setLayerError(ex); |
|
777 |
} |
|
778 |
|
|
760 | 779 |
/* |
761 | 780 |
* (non-Javadoc) |
762 | 781 |
* @see com.iver.cit.gvsig.fmap.layers.FLayer#visibleRequired() |
... | ... | |
825 | 844 |
} |
826 | 845 |
|
827 | 846 |
public void addLegendListener(LegendListener listener) { |
828 |
layerChangeSupport.addLayerListener(listener); |
|
847 |
if( listener == null ) { |
|
848 |
return ; |
|
849 |
} |
|
850 |
layerChangeSupport.addLayerListener(listener); |
|
829 | 851 |
} |
830 | 852 |
|
831 | 853 |
/** |
Also available in: Unified diff