Statistics
| Revision:

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
}