gvsig-raster / org.gvsig.raster.georeferencing / trunk / org.gvsig.raster.georeferencing / org.gvsig.raster.georeferencing.swing / org.gvsig.raster.georeferencing.swing.impl / src / main / java / org / gvsig / raster / georeferencing / swing / impl / option / GCPListImpl.java @ 1730
History | View | Annotate | Download (2.55 KB)
1 |
package org.gvsig.raster.georeferencing.swing.impl.option; |
---|---|
2 |
|
3 |
import java.util.ArrayList; |
4 |
import java.util.List; |
5 |
|
6 |
import org.gvsig.fmap.dal.coverage.datastruct.GeoPoint; |
7 |
import org.gvsig.fmap.dal.coverage.datastruct.GeoPointList; |
8 |
import org.gvsig.raster.georeferencing.swing.impl.layer.GPGraphic; |
9 |
import org.gvsig.raster.georeferencing.swing.model.GCPEvent; |
10 |
import org.gvsig.raster.georeferencing.swing.model.GCPList; |
11 |
import org.gvsig.raster.georeferencing.swing.model.GCPListener; |
12 |
|
13 |
/**
|
14 |
* @author Nacho Brodin nachobrodin@gmail.com
|
15 |
*/
|
16 |
public class GCPListImpl implements GCPList { |
17 |
private List<GPGraphic> pList = new ArrayList<GPGraphic>(); |
18 |
private List<GCPListener> listeners = new ArrayList<GCPListener>(); |
19 |
private int selectedPoint = -1; |
20 |
|
21 |
class GeoPointListImpl extends ArrayList<GeoPoint> implements GeoPointList { |
22 |
private static final long serialVersionUID = 1L; |
23 |
} |
24 |
|
25 |
public void addListener(GCPListener listener) { |
26 |
listeners.add(listener); |
27 |
} |
28 |
|
29 |
public void buildNewList(GeoPointList geoPointList) { |
30 |
long id = System.currentTimeMillis(); |
31 |
if(geoPointList != null) { |
32 |
pList.clear(); |
33 |
for (int i = 0; i < geoPointList.size(); i++) { |
34 |
GPGraphic graphicGCP = new GPGraphic(geoPointList.get(i));
|
35 |
graphicGCP.setId(id); |
36 |
geoPointList.get(i).setNumber(i); |
37 |
pList.add(graphicGCP); |
38 |
id += 1;
|
39 |
} |
40 |
} |
41 |
} |
42 |
|
43 |
public GeoPoint getGeoPoint(int i) { |
44 |
return pList.get(i).getGeoPoint();
|
45 |
} |
46 |
|
47 |
public GeoPointList getGeoPointList() {
|
48 |
GeoPointList geoPointList = new GeoPointListImpl();
|
49 |
for (int i = 0; i < pList.size(); i++) { |
50 |
geoPointList.add(pList.get(i).getGeoPoint()); |
51 |
} |
52 |
return geoPointList;
|
53 |
} |
54 |
|
55 |
public Object getGraphicPoint(int i) { |
56 |
return pList.get(i);
|
57 |
} |
58 |
|
59 |
public int size() { |
60 |
return pList.size();
|
61 |
} |
62 |
|
63 |
public void add(Object graphicPoint) { |
64 |
pList.add((GPGraphic)graphicPoint); |
65 |
for (int i = 0; i < listeners.size(); i++) { |
66 |
listeners.get(i).addPoint(new GCPEvent(pList, pList.size() - 1)); |
67 |
} |
68 |
} |
69 |
|
70 |
public void remove(int pos) { |
71 |
for (int i = 0; i < listeners.size(); i++) { |
72 |
listeners.get(i).removePoint(new GCPEvent(pList, pos));
|
73 |
} |
74 |
pList.remove(pos); |
75 |
} |
76 |
|
77 |
public void removeAll() { |
78 |
for (int i = 0; i < listeners.size(); i++) { |
79 |
listeners.get(i).removePoint(new GCPEvent(pList, -1)); |
80 |
} |
81 |
for (int i = pList.size() - 1; i >= 0; i--) { |
82 |
pList.remove(i); |
83 |
} |
84 |
} |
85 |
|
86 |
public void setSelectedPoint(int number) { |
87 |
this.selectedPoint = number;
|
88 |
for (int i = 0; i < listeners.size(); i++) { |
89 |
listeners.get(i).selectPoint(new GCPEvent(pList, number));
|
90 |
} |
91 |
} |
92 |
|
93 |
public int getSelectedPoint() { |
94 |
return selectedPoint;
|
95 |
} |
96 |
} |