Revision 2886

View differences:

trunk/extensions/extCatalogYNomenclator/src/es/gva/cit/gvsig/catalogClient/gui/ChooseResourceDialog.java
51 51

  
52 52
import es.gva.cit.catalogClient.parsers.Resource;
53 53
import es.gva.cit.catalogClient.ui.ChooseResourceDialogPanel;
54
import es.gva.cit.gvsig.catalogClient.loaders.PostgisLoader;
54 55
import es.gva.cit.gvsig.catalogClient.loaders.WCSLoader;
55 56
import es.gva.cit.gvsig.catalogClient.loaders.WFSLoader;
56 57
import es.gva.cit.gvsig.catalogClient.loaders.WMSLoader;
......
124 125
    }
125 126
    
126 127
    public void loadPostgis(Resource resource){
127
        JOptionPane.showMessageDialog(this,
128
                "La carga de POSTGIS a?n no est? implementada",
129
                "Carga de POSTGIS",
130
                JOptionPane.ERROR_MESSAGE);
131
    
132
        //new PostgisLoader().load(resource.getLinkage(),resource.getName());
128
        if (!(new PostgisLoader().load(resource.getLinkage(),resource.getName()))){
129
		       JOptionPane.showMessageDialog(this,
130
		                "Ha ocurrido un error al cargar el mapa:\n" +
131
		                "Servidor: " + resource.getLinkage() + "\n" +
132
		                "Par?metros: " + resource.getName(), "Carga de Postgis",
133
		                JOptionPane.ERROR_MESSAGE);
134
		    }	
135
        
136
        
133 137
    }
134 138
    
135 139
    public void loadLink(Resource resource){
trunk/extensions/extCatalogYNomenclator/src/es/gva/cit/gvsig/catalogClient/loaders/PostgisLoader.java
44 44
import java.sql.DriverManager;
45 45
import java.sql.SQLException;
46 46
import java.util.StringTokenizer;
47
import java.util.TreeMap;
47 48

  
48 49
import com.hardcode.driverManager.DriverLoadException;
49 50
import com.iver.cit.gvsig.fmap.drivers.DefaultDBDriver;
50 51
import com.iver.cit.gvsig.fmap.drivers.VectorialJDBCDriver;
52
import com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver;
51 53
import com.iver.cit.gvsig.fmap.layers.FLayer;
52 54
import com.iver.cit.gvsig.fmap.layers.LayerFactory;
53 55

  
......
84 86
        } catch (DriverLoadException e) {
85 87
            // TODO Auto-generated catch block
86 88
            e.printStackTrace();
87
        } catch (InstantiationException e) {
88
            // TODO Auto-generated catch block
89
            e.printStackTrace();
90
        } catch (IllegalAccessException e) {
91
            // TODO Auto-generated catch block
92
            e.printStackTrace();
93 89
        } catch (ClassNotFoundException e) {
94 90
            // TODO Auto-generated catch block
95 91
            e.printStackTrace();
......
108 104
     * @throws SQLException
109 105
     * @throws DriverLoadException
110 106
     * @throws ClassNotFoundException
111
     * @throws IllegalAccessException
112
     * @throws InstantiationException
113 107
   	 */
114
    private FLayer createPostgisLayer(String jdbcUrl, String sLayer) throws SQLException, DriverLoadException, InstantiationException, IllegalAccessException, ClassNotFoundException  {
108
    private FLayer createPostgisLayer(String jdbcUrl, String table) throws SQLException, DriverLoadException, ClassNotFoundException  {
115 109
        //jdbc:postgresql://sercartlin/carto_300k?user=gis&password=gis     
110
        //NAME=Comunicaciones&TABLENAME=comunic_lin_300k&ID=6&FIELDS=entity,layer,codigo,tipo,gid&GEOMFIELD=the_geom
116 111
        StringTokenizer sti = new StringTokenizer(jdbcUrl,"?");
117 112
        String dbURL = sti.nextToken();
118 113
        
119
        sti = new StringTokenizer(sti.nextToken(),"&");
120
        String user = sti.nextToken();
121
		String pwd = sti.nextToken();
114
        String p = sti.nextToken();
115
               
116
        TreeMap credentials = separateParams(p);
117
		String user = (String) credentials.get((String) "USER");
118
		String pwd = (String) credentials.get((String) "PASSWORD");
122 119
		
123
		dbURL = "jdbc:postgresql://sercartlin/carto_300k";
124
		user = "gis";
125
		pwd = "gis";
126
		
127
		String layerName = "the_geom";
128
		int fidField = 0;
129
		String fields = "gid,entity,layer,codigo,tipo,the_geom";
130
		String tableName = "comunic_lin_300k";
120
		TreeMap params = separateParams(table);
121
		String layerName = (String) params.get((String) "NAME");
122
		int fidField = Integer.valueOf((String) params.get((String) "ID")).intValue();
123
		String fields = getFieldsClause((String) params.get((String) "FIELDS"),
124
		        (String) params.get((String) "GEOMFIELD"));
125
		String tableName = (String) params.get((String) "TABLENAME");
131 126
		String whereClause = "";
132
    		
133
		
127
			
128
				
134 129
		 Connection conn = DriverManager.getConnection(dbURL, user, pwd);
135 130
         conn.setAutoCommit(false);
136 131

  
137
         VectorialJDBCDriver driver = (VectorialJDBCDriver) Class.forName("org.postgresql.Driver").newInstance();
138
         if (driver instanceof DefaultDBDriver)
139
         {
140
             DefaultDBDriver dbDriver = (DefaultDBDriver) driver;
141
             dbDriver.setData(conn, tableName, fields, whereClause, fidField);
142
             //if (dbLayerDefinition.getWorkingArea() != null){
143
               //  driver.setWorkingArea(dbLayerDefinition.getWorkingArea());
144
             //}
145
         }
146
         
147
         return LayerFactory.createDBLayer(driver, layerName, null);
148
    	
149
    	   
132
         PostGisDriver pgd = new PostGisDriver();
133
         pgd.setData(conn, tableName, fields, whereClause, fidField);
134
                 
135
         return LayerFactory.createDBLayer(pgd, layerName, null);
136
   }
137
    
138
    private String getFieldsClause(String fields,String geomField){
139
        return "ASBINARY(" + geomField + ", 'XDR')," + fields;
150 140
    }
141
    
142
    private TreeMap separateParams(String pairValues){
143
        TreeMap map = new TreeMap(); 
144
		String[] params = pairValues.split("&");
145
		for (int i = 0; i < params.length; i++) {
146
			String[] nameValue = params[i].split("=");
147
			map.put(nameValue[0].toUpperCase(), nameValue[1]);
148
		}
149
		return map;
150
    }
151 151
}
trunk/extensions/extCatalogYNomenclator/build.xml
13 13
  <property name="catProtoDir" value="../CatalogClientPrototype"/>
14 14
  <property name="remoteMapClientsDir" value="../Cq RemoteMapClients"/>
15 15
  <property name="wfsDir" value="../gvSIG_WFS"/>	
16
  <property name="postgisDir" value="../gvSIG_JDBC"/>	
16 17
  
17 18
  <target name="init">
18 19
    <!-- Create the time stamp -->
......
36 37
    <jar jarfile="${dist}/lib/catCliProto.jar" basedir="${catProtoDir}/bin"/>
37 38
  	<jar jarfile="${dist}/lib/remoteMapClients.jar" basedir="${remoteMapClientsDir}/bin"/>
38 39
  	<jar jarfile="${dist}/lib/wfsClient.jar" basedir="${wfsDir}/bin"/>
40
  	<jar jarfile="${dist}/lib/postgis.jar" basedir="${postgisDir}/bin"/>
39 41
  	<jar jarfile="${dist}/lib/${plugin}.jar" basedir="${build}" includes="es/gva/cit/gvsig/catalogClient/**"/>
40 42
    <!--jar jarfile="${dist}/${gvsiglibjar}.jar" basedir="${build}" includes="com/iver/cit/gvsig/gui/**"/-->
41 43
   	<copy file="config/config.xml" todir="${dist}"/>

Also available in: Unified diff