svn-gvsig-desktop / trunk / examples / exaExampleCenterViewToPoint / src / org / gvsig / examples / example1 / loadCSVLayer / OpenCSVToPointsExtension.java @ 13669
History | View | Annotate | Download (4.32 KB)
1 |
package org.gvsig.examples.example1.loadCSVLayer; |
---|---|
2 |
|
3 |
import java.net.URL; |
4 |
|
5 |
import com.hardcode.driverManager.DriverLoadException; |
6 |
import com.hardcode.gdbms.engine.data.DataSource; |
7 |
import com.hardcode.gdbms.engine.data.DataSourceFactory; |
8 |
import com.hardcode.gdbms.engine.data.NoSuchTableException; |
9 |
import com.hardcode.gdbms.engine.data.driver.DriverException; |
10 |
import com.iver.andami.PluginServices; |
11 |
import com.iver.andami.plugins.Extension; |
12 |
import com.iver.cit.gvsig.ProjectExtension; |
13 |
import com.iver.cit.gvsig.fmap.MapContext; |
14 |
import com.iver.cit.gvsig.fmap.layers.FLayerGenericVectorial; |
15 |
import com.iver.cit.gvsig.fmap.layers.LayerFactory; |
16 |
import com.iver.cit.gvsig.project.Project; |
17 |
import com.iver.cit.gvsig.project.ProjectFactory; |
18 |
import com.iver.cit.gvsig.project.documents.view.ProjectView; |
19 |
import com.iver.cit.gvsig.project.documents.view.gui.View; |
20 |
import com.iver.gvsig.addeventtheme.AddEventThemeDriver; |
21 |
import com.iver.utiles.extensionPoints.ExtensionPoint; |
22 |
import com.iver.utiles.extensionPoints.ExtensionPointsSingleton; |
23 |
|
24 |
public class OpenCSVToPointsExtension extends Extension{ |
25 |
|
26 |
public void initialize() { |
27 |
// TODO Auto-generated method stub
|
28 |
|
29 |
} |
30 |
|
31 |
public void postInitialize() { |
32 |
try {
|
33 |
addCSVPointLayer(); |
34 |
} catch (DriverLoadException e) {
|
35 |
// TODO Auto-generated catch block
|
36 |
e.printStackTrace(); |
37 |
} catch (NoSuchTableException e) {
|
38 |
// TODO Auto-generated catch block
|
39 |
e.printStackTrace(); |
40 |
} catch (DriverException e) {
|
41 |
// TODO Auto-generated catch block
|
42 |
e.printStackTrace(); |
43 |
} catch (InstantiationException e) { |
44 |
// TODO Auto-generated catch block
|
45 |
e.printStackTrace(); |
46 |
} catch (IllegalAccessException e) { |
47 |
// TODO Auto-generated catch block
|
48 |
e.printStackTrace(); |
49 |
} |
50 |
|
51 |
} |
52 |
|
53 |
public void execute(String actionCommand) { |
54 |
// TODO Auto-generated method stub
|
55 |
|
56 |
} |
57 |
|
58 |
public boolean isEnabled() { |
59 |
// TODO Auto-generated method stub
|
60 |
return false; |
61 |
} |
62 |
|
63 |
public boolean isVisible() { |
64 |
// TODO Auto-generated method stub
|
65 |
return false; |
66 |
} |
67 |
|
68 |
|
69 |
|
70 |
private void addCSVPointLayer() throws DriverLoadException, NoSuchTableException, DriverException, InstantiationException, IllegalAccessException{ |
71 |
// Funcion encargada de crear y cargar en la vista la capa
|
72 |
// de trabajo a partir del fichero csv
|
73 |
|
74 |
ProjectView pv=ProjectFactory.createView("Ejemplo CSV to Points");
|
75 |
View view=(View)pv.createWindow(); |
76 |
ProjectExtension pe=(ProjectExtension)PluginServices.getExtension(ProjectExtension.class); |
77 |
Project project=pe.getProject(); |
78 |
project.addDocument(pv); |
79 |
PluginServices.getMDIManager().addWindow(view); |
80 |
|
81 |
// csv
|
82 |
DataSourceFactory dataSourceFactory=LayerFactory.getDataSourceFactory(); |
83 |
URL fileURL = PluginServices.getPluginServices(this).getClassLoader().getResource("data/prueba.csv"); |
84 |
|
85 |
dataSourceFactory.addFileDataSource("csv string", "prueba",fileURL.getPath()); |
86 |
DataSource ds = dataSourceFactory.createRandomDataSource("prueba"); |
87 |
ds.start(); |
88 |
|
89 |
// Crearemos el driver que gestiona la capa de eventos y lo enlazaremos con
|
90 |
// la fuente de datos que acabamos de crear indicandole que columnas de esta
|
91 |
// representan los puntos de la geomretria
|
92 |
int xFieldIndex = ds.getFieldIndexByName("X"); |
93 |
int yFieldIndex = ds.getFieldIndexByName("Y"); |
94 |
// DriverManager dm=new DriverManager();
|
95 |
AddEventThemeDriver driver=new AddEventThemeDriver();//(AddEventThemeDriver)dm.getDriver("csv string"); |
96 |
driver.setData(ds, xFieldIndex, yFieldIndex); |
97 |
|
98 |
MapContext mapContext=view.getMapControl().getMapContext(); |
99 |
|
100 |
// Crearemos ahora la nueva capa basada en este driver
|
101 |
FLayerGenericVectorial layer = (FLayerGenericVectorial)(((ExtensionPoint)ExtensionPointsSingleton.getInstance().get("Layers")).create("com.iver.cit.gvsig.fmap.layers.FLayerGenericVectorial")); |
102 |
layer.setName("prueba");
|
103 |
layer.setDriver(driver); |
104 |
layer.setProjection(mapContext.getProjection()); |
105 |
mapContext.getLayers().addLayer(layer); |
106 |
|
107 |
|
108 |
|
109 |
// capa = LayerFactory.createLayer("ademuz", driver, mapContext.getProjection());
|
110 |
// capa.addLayerListener(new AddEventThemListener());
|
111 |
// mapContext.getLayers().addLayer(layer);
|
112 |
// Una vez creada la capa se le a?ade una propiedad para reconocerla
|
113 |
// como nuestra capa de trabajo
|
114 |
layer.setProperty("CapaDePruebaCSV","propiedad para distinguir la capa de prueba"); |
115 |
|
116 |
// Indicamos al mapContext que se debe repintar
|
117 |
mapContext.invalidate(); |
118 |
mapContext.redraw(); |
119 |
} |
120 |
} |