svn-gvsig-desktop / trunk / applications / appgvSIG / src / com / iver / cit / gvsig / gui / ExtentListSelectorModel.java @ 312
History | View | Annotate | Download (1.79 KB)
1 |
package com.iver.cit.gvsig.gui; |
---|---|
2 |
|
3 |
import java.beans.PropertyChangeEvent; |
4 |
import java.beans.PropertyChangeListener; |
5 |
import java.util.ArrayList; |
6 |
|
7 |
import javax.swing.ListModel; |
8 |
import javax.swing.event.ListDataEvent; |
9 |
import javax.swing.event.ListDataListener; |
10 |
|
11 |
import com.iver.cit.gvsig.project.Project; |
12 |
|
13 |
|
14 |
public class ExtentListSelectorModel implements ListModel, PropertyChangeListener { |
15 |
|
16 |
private Project project;
|
17 |
private ArrayList listeners = new ArrayList(); |
18 |
|
19 |
public ExtentListSelectorModel(Project p){
|
20 |
project = p; |
21 |
} |
22 |
|
23 |
/**
|
24 |
* @see javax.swing.ListModel#getSize()
|
25 |
*/
|
26 |
public int getSize() { |
27 |
return project.getExtents().length;
|
28 |
} |
29 |
|
30 |
/**
|
31 |
* @see javax.swing.ListModel#getElementAt(int)
|
32 |
*/
|
33 |
public Object getElementAt(int arg0) { |
34 |
return project.getExtents()[arg0];
|
35 |
} |
36 |
|
37 |
/* (non-Javadoc)
|
38 |
* @see javax.swing.ListModel#addListDataListener(javax.swing.event.ListDataListener)
|
39 |
*/
|
40 |
public void addListDataListener(ListDataListener arg0) { |
41 |
listeners.add(arg0); |
42 |
} |
43 |
|
44 |
/**
|
45 |
* @see javax.swing.ListModel#removeListDataListener(javax.swing.event.ListDataListener)
|
46 |
*/
|
47 |
public void removeListDataListener(ListDataListener arg0) { |
48 |
listeners.remove(arg0); |
49 |
} |
50 |
|
51 |
/* (non-Javadoc)
|
52 |
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
|
53 |
*/
|
54 |
public void propertyChange(PropertyChangeEvent change) { |
55 |
if (change.getPropertyName().equals("addExtent")){ |
56 |
ListDataEvent event = new ListDataEvent(this, ListDataEvent.INTERVAL_ADDED, 0, getSize()); |
57 |
for (int i = 0; i < listeners.size(); i++){ |
58 |
((ListDataListener) listeners.get(i)).intervalAdded(event);
|
59 |
} |
60 |
}else{
|
61 |
ListDataEvent event = new ListDataEvent(this, ListDataEvent.INTERVAL_ADDED, 0, getSize()); |
62 |
for (int i = 0; i < listeners.size(); i++){ |
63 |
((ListDataListener) listeners.get(i)).intervalRemoved(event);
|
64 |
} |
65 |
} |
66 |
} |
67 |
|
68 |
} |