Revision 31228 trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/rendering/styling/labeling/AttrInTableLabelingStrategy.java

View differences:

AttrInTableLabelingStrategy.java
119 119
				FBitSet bs = layer.queryByRect(viewPort.getAdjustedExtent());
120 120

  
121 121
				ReadableVectorial source = layer.getSource();
122
				SelectableDataSource recordSet = source.getRecordset();
122
				SelectableDataSource recordSet = layer.getRecordset();
123 123
				boolean reproject=layer.getProjection()!=null && !layer.getProjection().getAbrev().equals(
124 124
						layer.getMapContext().getViewPort().getProjection().getAbrev()) &&
125 125
						(layer.getCoordTrans()!=null);
126
				
127
				
128
				if ((idTextField == -1) || (idTextField >= recordSet.getFieldCount())) {
129
					System.err.println("Ha habido un error. Se ha perdido el campo de etiquetado. Probablemente por quitar un join o edici?n externa.");
130
					return;
131
				}
132

  
126 133
				for(int i=bs.nextSetBit(0); i>=0 && !cancel.isCanceled(); i=bs.nextSetBit(i+1)) {
127 134
					Value[] vv = recordSet.getRow(i);
128 135
					double size;
......
298 305

  
299 306
	public String getTextField() throws ReadDriverException {
300 307
		if (idTextField == -1) return null;
301
		return ((SelectableDataSource) layer.getRecordset())
302
				.getFieldName(idTextField);
308
		try {
309
			String fieldName = ((SelectableDataSource) layer.getRecordset()).getFieldAlias(idTextField); 
310
			return fieldName;
311
		}
312
		catch (ArrayIndexOutOfBoundsException e) {
313
			// Probablmente hemos quitado un join y la leyenda se basaba en un campo de la segunda tabla
314
			e.printStackTrace();
315
			return null;
316
		}
303 317
	}
304 318

  
305 319
	public int getTextFieldId() {
......
313 327
	public String getHeightField() throws ReadDriverException {
314 328
		if (idHeightField == -1) return null;
315 329
		return ((SelectableDataSource) layer.getRecordset())
316
				.getFieldName(idHeightField);
330
				.getFieldAlias(idHeightField);
317 331
	}
318 332

  
319 333
	public int getHeightFieldId() {
......
327 341
	public String getColorField() throws ReadDriverException {
328 342
		if (idColorField == -1) return null;
329 343
		return ((SelectableDataSource) layer.getRecordset())
330
				.getFieldName(idColorField);
344
				.getFieldAlias(idColorField);
331 345
	}
332 346

  
333 347
	public int getColorFieldId() {

Also available in: Unified diff