Revision 13941

View differences:

trunk/extensions/extSDE/src/com/iver/cit/gvsig/fmap/drivers/sde/ArcSdeFeatureIterator.java
257 257
     * @throws SQLException
258 258
     *
259 259
     */
260
    public ArcSdeFeatureIterator(SeQuery query) {
260
    public ArcSdeFeatureIterator(SeQuery query, String idField) {
261 261
        // Debe ser forward only
262 262
        this.query = query;
263 263
        try {
......
272 272
            bFirst = true;
273 273
            SeColumnDefinition[] colDefs = row.getColumns();
274 274
        	for (int i=0; i<colDefs.length;i++){
275
        		if (colDefs[i].getName().equals("OBJECTID")){
275
        		if (colDefs[i].getName().equals(idField)){
276 276
        			index=i;
277 277
        			break;
278 278
        		}
trunk/extensions/extSDE/src/com/iver/cit/gvsig/fmap/drivers/sde/ArcSdeDriver.java
51 51

  
52 52
import com.esri.sde.sdk.client.SeColumnDefinition;
53 53
import com.esri.sde.sdk.client.SeConnection;
54
import com.esri.sde.sdk.client.SeDefs;
54 55
import com.esri.sde.sdk.client.SeException;
55 56
import com.esri.sde.sdk.client.SeExtent;
56 57
import com.esri.sde.sdk.client.SeFilter;
......
214 215
            SeShapeFilter[] filters = new SeShapeFilter[1];
215 216
            SeShapeFilter filter = null;
216 217

  
217
            filter = new SeShapeFilter(layer.getName(),
218
            filter = new SeShapeFilter(layer.getQualifiedName(),
218 219
                    layer.getSpatialColumn(), shape, SeFilter.METHOD_ENVP);
219 220
            filters[0] = filter;
220 221

  
221 222
            SeQuery spatialQuery = null;
222
            SeSqlConstruct sqlCons = new SeSqlConstruct(layer.getName());
223
            SeSqlConstruct sqlCons = new SeSqlConstruct(layer.getQualifiedName());
223 224

  
224 225
            spatialQuery = new SeQuery(alphanumericConnection, fields, sqlCons);
225 226

  
......
233 234

  
234 235
            spatialQuery.execute();
235 236

  
236
            return new ArcSdeFeatureIterator(spatialQuery);
237
            return new ArcSdeFeatureIterator(spatialQuery,getLyrDef().getFieldID());
237 238
        } catch (SeException e) {
238 239
        	NotificationManager.addError(e);
239 240
            return null;
......
287 288
	}
288 289

  
289 290
    public String getTableName() {
290
        return layer.getName();
291
        try {
292
			return layer.getQualifiedName();
293
		} catch (SeException e) {
294
			e.printStackTrace();
295
		}
296
		return layer.getName();
291 297
    }
292 298

  
293 299
    private synchronized SeRow obtainRow(long rowIndex) throws SeException {
......
314 320

  
315 321
                queryAux = new SeQuery(((ConnectionSDE)spatialConnection).getConnection(), fields, sqlConstruct);
316 322
                SeObjectId rowID = new SeObjectId(rowIndex + 1);
317
                row = queryAux.fetchRow(layer.getName(), rowID, fields);
323
                row = queryAux.fetchRow(layer.getQualifiedName(), rowID, fields);
318 324
            }
319 325
            posActual = rowIndex;
320 326
            cachedRow = row;
......
368 374
                break;
369 375

  
370 376
            case SeColumnDefinition.TYPE_STRING:
371
            case SeColumnDefinition.TYPE_NSTRING:
372

  
373 377
                String strAux = row.getString(idFieldArcSDE);
374 378

  
375 379
                if (strAux == null) {
......
379 383
                val = ValueFactory.createValue(strAux);
380 384

  
381 385
                break;
386
            case SeColumnDefinition.TYPE_NSTRING:
387
                String nstrAux = row.getNString(idFieldArcSDE);
388
                if (nstrAux == null) {
389
                    nstrAux = "";
390
                }
391

  
392
                val = ValueFactory.createValue(nstrAux);
393

  
394
                break;
382 395
            }
383 396

  
384 397
            return val;
398

  
385 399
        } catch (SeException e) {
386 400
        	NotificationManager.addError(e);
387 401
        }
......
438 452
            SeShapeFilter[] filters = new SeShapeFilter[1];
439 453
            SeShapeFilter filter = null;
440 454

  
441
            filter = new SeShapeFilter(layer.getName(),
455
            filter = new SeShapeFilter(layer.getQualifiedName(),
442 456
                    layer.getSpatialColumn(), shape, SeFilter.METHOD_ENVP);
443 457
            filters[0] = filter;
444 458

  
445 459
            SeQuery spatialQuery = null;
446
            SeSqlConstruct sqlCons = new SeSqlConstruct(layer.getName());
460
            SeSqlConstruct sqlCons = new SeSqlConstruct(layer.getQualifiedName());
447 461

  
448 462
            spatialQuery = new SeQuery(alphanumericConnection, fields, sqlCons);
449 463

  
......
457 471

  
458 472
            spatialQuery.execute();
459 473

  
460
            return new ArcSdeFeatureIterator(spatialQuery);
474
            return new ArcSdeFeatureIterator(spatialQuery,getLyrDef().getFieldID());
461 475
        } catch (SeException e) {
462 476
        	NotificationManager.addError(e);
463 477

  
......
513 527
            for (int i = 0; i < theLayers.size(); i++) {
514 528
                SeLayer layer = (SeLayer) theLayers.elementAt(i);
515 529

  
516
                if (layer.getName().compareToIgnoreCase(layerName) == 0) {
530
                if (layer.getQualifiedName().compareToIgnoreCase(layerName) == 0) {
517 531
                	layerID = layer.getID();
518 532
                    strSpatialColumn = layer.getSpatialColumn();
533
                    this.layer=layer;
519 534
                    break;
520 535
                }
521 536

  
......
529 544
            }
530 545

  
531 546
            // layerName = layer.getName();
532
            layer = new SeLayer(((ConnectionSDE)spatialConnection).getConnection(), layerName, strSpatialColumn);
547
//            layer = new SeLayer(((ConnectionSDE)spatialConnection).getConnection(), layerName, strSpatialColumn);
533 548

  
534 549
            //TODO aqu? se puede saber la proyecci?n
535 550
            //layer.getCoordRef().getSrid();
......
969 984
            DBLayerDefinition lyrDef = new DBLayerDefinition();
970 985
            if (getLyrDef() == null) {
971 986
	            lyrDef.setCatalogName(catalogName);
972
	            lyrDef.setTableName(tableName);
987
	            lyrDef.setTableName(getTableName());
973 988
	            lyrDef.setFieldNames(fields);
974 989
	            lyrDef.setFieldID(FIDfield);
975 990
	            lyrDef.setFieldGeometry(geometryField);
......
1015 1030
    }
1016 1031
	public String[] getAllFields(IConnection conex, String tableName) throws DBException {
1017 1032
		try {
1018
			SeTable table = new SeTable(((ConnectionSDE)conex).getConnection(),tableName);
1033
			SeTable table = null;
1034
			Vector tables=((ConnectionSDE)conex).getConnection().getTables(SeDefs.SE_SELECT_PRIVILEGE);
1035
			for (int i=0;i<tables.size();i++) {
1036
				if (tableName.equals(((SeTable)tables.get(i)).getQualifiedName())) {
1037
					table=(SeTable)tables.get(i);
1038
					break;
1039
				}
1040
			}
1019 1041
			SeRegisteredColumn[] columns=table.getColumnList();
1020 1042
			String[] fieldNames=new String[columns.length];
1021 1043
			for (int i=0; i < columns.length; i++){
......
1028 1050
	}
1029 1051
	public String[] getAllFieldTypeNames(IConnection conex, String tableName) throws DBException {
1030 1052
		try {
1031
			SeTable table = new SeTable(((ConnectionSDE)conex).getConnection(),tableName);
1053
			SeTable table = null;
1054
			Vector tables=((ConnectionSDE)conex).getConnection().getTables(SeDefs.SE_SELECT_PRIVILEGE);
1055
			for (int i=0;i<tables.size();i++) {
1056
				if (tableName.equals(((SeTable)tables.get(i)).getQualifiedName())) {
1057
					table=(SeTable)tables.get(i);
1058
					break;
1059
				}
1060
			}
1032 1061
			SeRegisteredColumn[] columns=table.getColumnList();
1033 1062
			String[] fieldNames=new String[columns.length];
1034 1063
			for (int i=0; i < columns.length; i++){
......
1051 1080
			TreeMap ret = new TreeMap();
1052 1081
			for (int i = 0; i < theLayers.size(); i++) {
1053 1082
				SeLayer layer = (SeLayer) theLayers.elementAt(i);
1054
				ret.put(layer.getTableName(), layer.getTableName());
1083
				ret.put(layer.getQualifiedName(), layer.getQualifiedName());
1055 1084
			}
1056 1085
			return (String[]) ret.keySet().toArray(new String[0]);
1057 1086
			} catch (SeException e) {
branches/v10/extensions/extSDE/build.number
1 1
#Build Number for ANT. Do not edit!
2
#Tue Jun 05 09:31:21 CEST 2007
3
build.number=3
2
#Fri Sep 21 12:12:13 CEST 2007
3
build.number=7
branches/v10/extensions/extSDE/src/com/iver/cit/gvsig/fmap/drivers/sde/ArcSdeFeatureIterator.java
257 257
     * @throws SQLException
258 258
     *
259 259
     */
260
    public ArcSdeFeatureIterator(SeQuery query) {
260
    public ArcSdeFeatureIterator(SeQuery query, String idField) {
261 261
        // Debe ser forward only
262 262
        this.query = query;
263 263
        try {
......
272 272
            bFirst = true;
273 273
            SeColumnDefinition[] colDefs = row.getColumns();
274 274
        	for (int i=0; i<colDefs.length;i++){
275
        		if (colDefs[i].getName().equals("OBJECTID")){
275
        		if (colDefs[i].getName().equals(idField)){
276 276
        			index=i;
277 277
        			break;
278 278
        		}
......
283 283
        }
284 284
    }
285 285

  
286

  
286 287
    /* (non-Javadoc)
287 288
     * @see com.iver.cit.gvsig.fmap.drivers.jdbc.GeometryIterator#hasNext()
288 289
     */
branches/v10/extensions/extSDE/src/com/iver/cit/gvsig/fmap/drivers/sde/ArcSdeDriver.java
52 52

  
53 53
import com.esri.sde.sdk.client.SeColumnDefinition;
54 54
import com.esri.sde.sdk.client.SeConnection;
55
import com.esri.sde.sdk.client.SeDefs;
55 56
import com.esri.sde.sdk.client.SeException;
56 57
import com.esri.sde.sdk.client.SeExtent;
57 58
import com.esri.sde.sdk.client.SeFilter;
......
222 223
            SeShapeFilter[] filters = new SeShapeFilter[1];
223 224
            SeShapeFilter filter = null;
224 225

  
225
            filter = new SeShapeFilter(layer.getName(),
226
            filter = new SeShapeFilter(layer.getQualifiedName(),
226 227
                    layer.getSpatialColumn(), shape, SeFilter.METHOD_ENVP);
227 228
            filters[0] = filter;
228 229

  
229 230
            SeQuery spatialQuery = null;
230
            SeSqlConstruct sqlCons = new SeSqlConstruct(layer.getName());
231
            SeSqlConstruct sqlCons = new SeSqlConstruct(layer.getQualifiedName());
231 232

  
232 233
            spatialQuery = new SeQuery(alphanumericConnection, fields, sqlCons);
233 234

  
......
241 242

  
242 243
            spatialQuery.execute();
243 244

  
244
            return new ArcSdeFeatureIterator(spatialQuery);
245
            return new ArcSdeFeatureIterator(spatialQuery,getLyrDef().getFieldID());
245 246
        } catch (SeException e) {
246 247
        	NotificationManager.addError(e);
247 248
            return null;
......
295 296
	}
296 297

  
297 298
    public String getTableName() {
298
        return layer.getName();
299
        try {
300
			return layer.getQualifiedName();
301
		} catch (SeException e) {
302
			e.printStackTrace();
303
		}
304
		return layer.getName();
299 305
    }
300 306

  
301 307
    private synchronized SeRow obtainRow(long rowIndex) throws SeException {
......
322 328

  
323 329
                queryAux = new SeQuery(((ConnectionSDE)spatialConnection).getConnection(), fields, sqlConstruct);
324 330
                SeObjectId rowID = new SeObjectId(rowIndex + 1);
325
                row = queryAux.fetchRow(layer.getName(), rowID, fields);
331
                row = queryAux.fetchRow(layer.getQualifiedName(), rowID, fields);
326 332
            }
327 333
            posActual = rowIndex;
328 334
            cachedRow = row;
......
377 383
                break;
378 384

  
379 385
            case SeColumnDefinition.TYPE_STRING:
380
            case SeColumnDefinition.TYPE_NSTRING:
381

  
382 386
                String strAux = row.getString(idFieldArcSDE);
383 387

  
384 388
                if (strAux == null) {
......
388 392
                val = ValueFactory.createValue(strAux);
389 393

  
390 394
                break;
395
            case SeColumnDefinition.TYPE_NSTRING:
396
                String nstrAux = row.getNString(idFieldArcSDE);
397
                if (nstrAux == null) {
398
                    nstrAux = "";
399
                }
400

  
401
                val = ValueFactory.createValue(nstrAux);
402

  
403
                break;
391 404
            }
392 405

  
393 406
            return val;
......
452 465
            SeShapeFilter[] filters = new SeShapeFilter[1];
453 466
            SeShapeFilter filter = null;
454 467

  
455
            filter = new SeShapeFilter(layer.getName(),
468
            filter = new SeShapeFilter(layer.getQualifiedName(),
456 469
                    layer.getSpatialColumn(), shape, SeFilter.METHOD_ENVP);
457 470
            filters[0] = filter;
458 471

  
459 472
            SeQuery spatialQuery = null;
460
            SeSqlConstruct sqlCons = new SeSqlConstruct(layer.getName());
473
            SeSqlConstruct sqlCons = new SeSqlConstruct(layer.getQualifiedName());
461 474

  
462 475
            spatialQuery = new SeQuery(alphanumericConnection, fields, sqlCons);
463 476

  
......
471 484

  
472 485
            spatialQuery.execute();
473 486

  
474
            return new ArcSdeFeatureIterator(spatialQuery);
487
            return new ArcSdeFeatureIterator(spatialQuery,getLyrDef().getFieldID());
475 488
        } catch (SeException e) {
476 489
        	NotificationManager.addError(e);
477 490

  
......
527 540
            for (int i = 0; i < theLayers.size(); i++) {
528 541
                SeLayer layer = (SeLayer) theLayers.elementAt(i);
529 542

  
530
                if (layer.getName().compareToIgnoreCase(layerName) == 0) {
543
                if (layer.getQualifiedName().compareToIgnoreCase(layerName) == 0) {
531 544
                	layerID = layer.getID();
532 545
                    strSpatialColumn = layer.getSpatialColumn();
546
                    this.layer=layer;
547
                    break;
533 548
                }
534 549

  
535 550

  
......
542 557
            }
543 558

  
544 559
            // layerName = layer.getName();
545
            layer = new SeLayer(((ConnectionSDE)spatialConnection).getConnection(), layerName, strSpatialColumn);
560
//            layer = new SeLayer(((ConnectionSDE)spatialConnection).getConnection(), layerName, strSpatialColumn);
546 561

  
547 562
            //TODO aqu? se puede saber la proyecci?n
548 563
            //layer.getCoordRef().getSrid();
......
984 999
            DBLayerDefinition lyrDef = new DBLayerDefinition();
985 1000
            if (getLyrDef() == null) {
986 1001
	            lyrDef.setCatalogName(catalogName);
987
	            lyrDef.setTableName(tableName);
1002
	            lyrDef.setTableName(getTableName());
988 1003
	            lyrDef.setFieldNames(fields);
989 1004
	            lyrDef.setFieldID(FIDfield);
990 1005
	            lyrDef.setFieldGeometry(geometryField);
......
1035 1050
    }
1036 1051
	public String[] getAllFields(IConnection conex, String tableName) throws DBException {
1037 1052
		try {
1038
			SeTable table = new SeTable(((ConnectionSDE)conex).getConnection(),tableName);
1053
			SeTable table = null;
1054
			Vector tables=((ConnectionSDE)conex).getConnection().getTables(SeDefs.SE_SELECT_PRIVILEGE);
1055
			for (int i=0;i<tables.size();i++) {
1056
				if (tableName.equals(((SeTable)tables.get(i)).getQualifiedName())) {
1057
					table=(SeTable)tables.get(i);
1058
					break;
1059
				}
1060
			}
1039 1061
			SeRegisteredColumn[] columns=table.getColumnList();
1040 1062
			String[] fieldNames=new String[columns.length];
1041 1063
			for (int i=0; i < columns.length; i++){
......
1048 1070
	}
1049 1071
	public String[] getAllFieldTypeNames(IConnection conex, String tableName) throws DBException {
1050 1072
		try {
1051
			SeTable table = new SeTable(((ConnectionSDE)conex).getConnection(),tableName);
1073
			SeTable table = null;
1074
			Vector tables=((ConnectionSDE)conex).getConnection().getTables(SeDefs.SE_SELECT_PRIVILEGE);
1075
			for (int i=0;i<tables.size();i++) {
1076
				if (tableName.equals(((SeTable)tables.get(i)).getQualifiedName())) {
1077
					table=(SeTable)tables.get(i);
1078
					break;
1079
				}
1080
			}
1052 1081
			SeRegisteredColumn[] columns=table.getColumnList();
1053 1082
			String[] fieldNames=new String[columns.length];
1054 1083
			for (int i=0; i < columns.length; i++){
......
1071 1100
			TreeMap ret = new TreeMap();
1072 1101
			for (int i = 0; i < theLayers.size(); i++) {
1073 1102
				SeLayer layer = (SeLayer) theLayers.elementAt(i);
1074
				ret.put(layer.getTableName(), layer.getTableName());
1103
				ret.put(layer.getQualifiedName(), layer.getQualifiedName());
1075 1104
			}
1076 1105
			return (String[]) ret.keySet().toArray(new String[0]);
1077 1106
			} catch (SeException e) {
branches/v10/extensions/extSDE/build.xml
42 42
		description="increment build number and generate the distribution without the source file"
43 43
		depends="create-jar,copy-data-files,copy-libs,move-to-installDir">
44 44
	</target>
45
	
45

  
46 46
	<target name="dist" depends="buildNumber,main"/>
47 47

  
48 48
	<target name="batch-build"
......
68 68
		<mkdir dir="config"/>
69 69
		<mkdir dir="${dist}"/>
70 70
		<mkdir dir="${dist}/images"/>
71
	
71

  
72 72
		<copy todir="${dist}">
73 73
			<fileset dir="config" includes="*"/>
74 74
		</copy>
75 75
	  	<copy todir="${dist}/images">
76 76
  		   	<fileset dir="images" includes="*"/>
77
	  	</copy>	
77
	  	</copy>
78 78
	  	<copy file="build.number" todir="${dist}"/>
79 79
	  	<loadproperties srcFile="build.number"/>
80 80
	  	<replace casesensitive="true"
......
82 82
	  	  	token="#build.number#"
83 83
	  		value="${build.number}"/>
84 84
	</target>
85
	
85

  
86 86
	<target name="copy-libs">
87 87
		<mkdir dir="${dist}/lib"/>
88 88
	    <copy todir="${dist}/lib">
......
92 92

  
93 93
	<target name="create-jar" description="Creates the jar file">
94 94
		<mkdir dir="${dist}"/>
95
		<mkdir dir="${dist}/lib"/>
95 96
		<jar jarfile="${dist}/lib/${plugin}.jar" basedir="${build}"/>
96 97
	</target>
97 98

  
......
100 101
			<fileset dir="${dist}" includes="**/*" />
101 102
		</move>
102 103
	</target>
103
	
104

  
104 105
	<target name="clean"
105 106
			description="clean up" >
106 107
		<delete dir="${dist}"/>
branches/v10/extensions/extSDE/.classpath
3 3
	<classpathentry kind="src" path="src"/>
4 4
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
5 5
	<classpathentry kind="src" path="src-test"/>
6
	<classpathentry kind="lib" path="lib/jpe91_sdk.jar"/>
7
	<classpathentry kind="lib" path="lib/jsde91_sdk.jar"/>
8 6
	<classpathentry sourcepath="/libGDBMS" kind="lib" path="/libFMap/lib/gdbms-0.8-SNAPSHOT.jar"/>
9 7
	<classpathentry combineaccessrules="false" kind="src" path="/libFMap"/>
10 8
	<classpathentry sourcepath="/libDriverManager" kind="lib" path="/libFMap/lib/driver-manager-1.1.jar"/>
......
16 14
	<classpathentry sourcepath="/libUI/src" kind="lib" path="/_fwAndami/lib/beans.jar"/>
17 15
	<classpathentry kind="lib" path="/_fwAndami/lib/log4j-1.2.8.jar"/>
18 16
	<classpathentry sourcepath="ECLIPSE_HOME/plugins/org.eclipse.jdt.source_3.1.1/src/org.junit_3.8.1/junitsrc.zip" kind="var" path="JUNIT_HOME/junit.jar"/>
17
	<classpathentry kind="lib" path="lib/jpe91_sdk.jar"/>
18
	<classpathentry kind="lib" path="lib/jsde91_sdk.jar"/>
19 19
	<classpathentry kind="output" path="bin"/>
20 20
</classpath>

Also available in: Unified diff