Revision 727

View differences:

trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/EventBuffer.java
3 3
import com.iver.cit.gvsig.fmap.layers.CancelationException;
4 4
import com.iver.cit.gvsig.fmap.layers.LayerCollectionEvent;
5 5
import com.iver.cit.gvsig.fmap.layers.LayerCollectionListener;
6
import com.iver.cit.gvsig.fmap.layers.LayerEvent;
7
import com.iver.cit.gvsig.fmap.layers.LayerListener;
6 8
import com.iver.cit.gvsig.fmap.layers.LayerPositionEvent;
7 9
import com.iver.cit.gvsig.fmap.layers.LegendListener;
8 10
import com.iver.cit.gvsig.fmap.layers.SelectionEvent;
......
19 21
 * @author Fernando Gonz?lez Cort?s
20 22
 */
21 23
public class EventBuffer implements LegendListener, LayerCollectionListener,
22
	SelectionListener, ExtentListener {
24
	SelectionListener, ExtentListener, LayerListener {
23 25
	private ArrayList events = new ArrayList();
24 26
	private ArrayList listeners = new ArrayList();
25 27
	
......
169 171
		}
170 172
		events.clear();
171 173
	}
174

  
175
	/**
176
	 * @see com.iver.cit.gvsig.fmap.layers.LayerListener#visibilityChanged(com.iver.cit.gvsig.fmap.layers.LayerEvent)
177
	 */
178
	public void visibilityChanged(LayerEvent e) {
179
		events.add(e);
180
		if (dispatching) fireAtomicEventListener();
181
	}
182

  
183
	/**
184
	 * @see com.iver.cit.gvsig.fmap.layers.LayerListener#activationChanged(com.iver.cit.gvsig.fmap.layers.LayerEvent)
185
	 */
186
	public void activationChanged(LayerEvent e) {
187
		events.add(e);
188
		if (dispatching) fireAtomicEventListener();
189
	}
190

  
191
	/**
192
	 * @see com.iver.cit.gvsig.fmap.layers.LayerListener#nameChanged(com.iver.cit.gvsig.fmap.layers.LayerEvent)
193
	 */
194
	public void nameChanged(LayerEvent e) {
195
		events.add(e);
196
		if (dispatching) fireAtomicEventListener();
197
	}
172 198
}
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/AtomicEvent.java
5 5

  
6 6
import com.iver.cit.gvsig.fmap.layers.LayerCollectionEvent;
7 7
import com.iver.cit.gvsig.fmap.layers.LayerCollectionListener;
8
import com.iver.cit.gvsig.fmap.layers.LayerEvent;
8 9
import com.iver.cit.gvsig.fmap.layers.LegendEvent;
9 10
import com.iver.cit.gvsig.fmap.layers.LegendListener;
10 11
import com.iver.cit.gvsig.fmap.layers.SelectionEvent;
......
78 79
		return (ExtentEvent[]) ret.toArray(new ExtentEvent[0]);
79 80
	}
80 81

  
82
	public LayerEvent[] getLayerEvents(){
83
		ArrayList ret = new ArrayList();
84
		for (Iterator iter = events.iterator(); iter.hasNext();) {
85
			FMapEvent event = (FMapEvent) iter.next();
86
			
87
			if (event instanceof LayerEvent){
88
				ret.add(event);
89
			}
90
		}
91
		
92
		return (LayerEvent[]) ret.toArray(new LayerEvent[0]);
93
	}
94

  
81 95
}
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/layers/FLyrDefault.java
2 2
package com.iver.cit.gvsig.fmap.layers;
3 3

  
4 4
import java.beans.PropertyChangeSupport;
5
import java.util.ArrayList;
6
import java.util.Iterator;
5 7

  
6 8
import org.cresques.cts.ICoordTrans;
7 9
import org.cresques.cts.IProjection;
......
25 27
	private boolean visible = true;
26 28
	private boolean active;
27 29
	private int transparency = 0;
28

  
30
	
31
	private ArrayList layerListeners = new ArrayList();
32
	
29 33
	/**
30 34
	 * DOCUMENT ME!
31 35
	 *
......
72 76
	 */
73 77
	public void setActive(boolean selected) {
74 78
		active = selected;
79
		callActivationChanged(new LayerEvent(this, "active"));
75 80
	}
76 81

  
77 82
	/**
......
86 91
	 */
87 92
	public void setName(String name) {
88 93
		this.name = name;
94
		callNameChanged(new LayerEvent(this, "name"));
89 95
	}
90 96

  
91 97
	/**
......
106 112
	 */
107 113
	public void setVisible(boolean visibility) {
108 114
		visible = visibility;
109
		System.out.println("visible= " + visibility);
115
		callVisibilityChanged(new LayerEvent(this, "visible"));
110 116
	}
111 117

  
112 118
	/**
......
220 226
		return getParentLayer().getFMap();
221 227
	}
222 228

  
229
	public boolean addLayerListener(LayerListener o) {
230
		return layerListeners.add(o);
231
	}
232
	public boolean removeLayerListener(LayerListener o) {
233
		return layerListeners.remove(o);
234
	}
235
	
236
	private void callNameChanged(LayerEvent e){
237
		for (Iterator iter = layerListeners.iterator(); iter.hasNext();) {
238
			LayerListener listener = (LayerListener) iter.next();
239
			
240
			listener.nameChanged(e);
241
		}
242
	}
243
	
244
	private void callVisibilityChanged(LayerEvent e){
245
		for (Iterator iter = layerListeners.iterator(); iter.hasNext();) {
246
			LayerListener listener = (LayerListener) iter.next();
247
			
248
			listener.visibilityChanged(e);
249
		}
250
	}
251
	
252
	private void callActivationChanged(LayerEvent e){
253
		for (Iterator iter = layerListeners.iterator(); iter.hasNext();) {
254
			LayerListener listener = (LayerListener) iter.next();
255
			
256
			listener.activationChanged(e);
257
		}
258
	}
223 259
}
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/layers/LayerListener.java
1
package com.iver.cit.gvsig.fmap.layers;
2

  
3

  
4
public interface LayerListener {
5
	public void visibilityChanged(LayerEvent e);
6
	
7
	public void activationChanged(LayerEvent e);
8
	
9
	public void nameChanged(LayerEvent e);
10
}
0 11

  
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/layers/FLayer.java
144 144
	void print(Graphics2D g, ViewPort viewPort,
145 145
		Cancellable cancel)
146 146
		throws DriverException;
147

  
148
	public boolean addLayerListener(LayerListener o);
149

  
150
	public boolean removeLayerListener(LayerListener o);
147 151
}
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/layers/LayerEvent.java
1
package com.iver.cit.gvsig.fmap.layers;
2

  
3
import com.iver.cit.gvsig.fmap.FMapEvent;
4

  
5

  
6
/**
7
 * Eventos de capa
8
 *
9
 * @author Fernando Gonz?lez Cort?s
10
 */
11
public class LayerEvent extends FMapEvent {
12
	private String property;
13
	private FLayer source;
14

  
15
	/**
16
	 * DOCUMENT ME!
17
	 *
18
	 * @param default1
19
	 * @param property DOCUMENT ME!
20
	 */
21
	public LayerEvent(FLyrDefault default1, String property) {
22
		source = default1;
23
		this.property = property;
24
	}
25

  
26
	/**
27
	 * DOCUMENT ME!
28
	 *
29
	 * @return DOCUMENT ME!
30
	 */
31
	public FLayer getSource() {
32
		return source;
33
	}
34

  
35
	/**
36
	 * DOCUMENT ME!
37
	 *
38
	 * @param source DOCUMENT ME!
39
	 */
40
	public void setSource(FLayer source) {
41
		this.source = source;
42
	}
43

  
44
	/**
45
	 * DOCUMENT ME!
46
	 *
47
	 * @return DOCUMENT ME!
48
	 */
49
	public String getProperty() {
50
		return property;
51
	}
52

  
53
	/**
54
	 * DOCUMENT ME!
55
	 *
56
	 * @param property DOCUMENT ME!
57
	 */
58
	public void setProperty(String property) {
59
		this.property = property;
60
	}
61
}
0 62

  
trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/FMap.java
527 527

  
528 528
			//Registramos al FMap como listener del legend de las capas
529 529
			FLayer lyr = e.getAffectedLayer();
530

  
530
			
531
			lyr.addLayerListener(eventBuffer);
532
			
531 533
			if (lyr instanceof Classifiable) {
532 534
				Classifiable c = (Classifiable) lyr;
533 535
				c.addLegendListener(eventBuffer);
......
551 553
		public void layerRemoved(LayerCollectionEvent e) {
552 554
			FLayer lyr = e.getAffectedLayer();
553 555

  
556
			lyr.removeLayerListener(eventBuffer);
557
			
554 558
			if (lyr instanceof Classifiable) {
555 559
				Classifiable c = (Classifiable) lyr;
556 560
				c.removeLegendListener(eventBuffer);

Also available in: Unified diff