Statistics
| Revision:

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
}