Revision 21112

View differences:

branches/v2_0_0_prep/libraries/libFMap/src/org/gvsig/fmap/mapcontext/rendering/legend/styling/AttrInTableLabelingStrategy.java
2 2

  
3 3
import java.awt.Graphics2D;
4 4
import java.awt.image.BufferedImage;
5
import java.util.Iterator;
5 6
import java.util.Vector;
6 7
import java.util.logging.Level;
7 8
import java.util.logging.Logger;
......
10 11
import javax.print.attribute.standard.PrintQuality;
11 12

  
12 13
import org.gvsig.data.ReadException;
14
import org.gvsig.data.vectorial.Feature;
15
import org.gvsig.data.vectorial.FeatureCollection;
16
import org.gvsig.data.vectorial.FeatureStore;
17
import org.gvsig.data.vectorial.FeatureType;
13 18
import org.gvsig.fmap.core.geometries.utils.FConstant;
14 19
import org.gvsig.fmap.core.geometries.utils.FLabel;
15 20
import org.gvsig.fmap.geom.Geometry;
......
21 26
import org.gvsig.fmap.mapcontext.layers.FLayer;
22 27
import org.gvsig.fmap.mapcontext.layers.ReadableVectorial;
23 28
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
29
import org.gvsig.fmap.mapcontext.rendering.legend.NullValue;
24 30
import org.gvsig.fmap.mapcontext.rendering.symbols.CartographicSupport;
25 31
import org.gvsig.fmap.mapcontext.rendering.symbols.CartographicSupportToolkit;
26 32
import org.gvsig.fmap.mapcontext.rendering.symbols.SimpleTextSymbol;
......
87 93
			&& (scale <= zoom.getMinScale()) ) ) {
88 94
			try {
89 95
				// limit the labeling to the visible extent
90
				FBitSet bs = layer.queryByRect(viewPort.getAdjustedExtent());
91

  
92
				ReadableVectorial source = layer.getSource();
93
				SelectableDataSource recordSet = source.getRecordset();
94

  
95
				for(int i=bs.nextSetBit(0); i>=0 && !cancel.isCanceled(); i=bs.nextSetBit(i+1)) {
96
					Value[] vv = recordSet.getRow(i);
96
//				FBitSet bs = layer.queryByRect(viewPort.getAdjustedExtent());
97
				FeatureCollection collection=(FeatureCollection)layer.getFeatureStore().getDataCollection(new String[0],null,null);
98
//				ReadableVectorial source = layer.getSource();
99
//				SelectableDataSource recordSet = source.getRecordset();
100
				Iterator iterator=collection.iterator();
101
				while(iterator.hasNext()){
102
					if (cancel.isCanceled()){
103
						return;
104
					}
105
					Feature feature=(Feature)iterator.next();
106
//				for(int i=bs.nextSetBit(0); i>=0 && !cancel.isCanceled(); i=bs.nextSetBit(i+1)) {
107
//					Value[] vv = recordSet.getRow(i);
97 108
					double size;
98 109

  
99 110
					if (useFixedSize){
......
102 113
					} else if (idHeightField != -1) {
103 114
						// text size is defined in the table
104 115
						try {
105
							size = ((NumericValue) vv[idHeightField]).doubleValue() * fontScaleFactor;
116
							size = ((Number) feature.get(idHeightField)).doubleValue() * fontScaleFactor;
106 117
						} catch (ClassCastException ccEx) {
107
							if (!NullValue.class.equals(vv[idHeightField].getClass())) {
118
							if (!NullValue.class.equals(feature.get(idHeightField).getClass())) {
108 119
								throw new ReadException("Unknown", ccEx);
109 120
							}
110 121
							// a null value
111 122
							Logger.getAnonymousLogger().
112
								warning("Null text height value for text '"+vv[idTextField].toString()+"'");
123
								warning("Null text height value for text '"+feature.get(idTextField).toString()+"'");
113 124
							continue;
114 125
						}
115 126
					} else {
......
138 149
					double rotation = 0D;
139 150
					if (idRotationField!= -1) {
140 151
						// text rotation is defined in the table
141
						rotation = -Math.toRadians(((NumericValue) vv[idRotationField]).doubleValue());
152
						rotation = -Math.toRadians(((Number) feature.get(idRotationField)).doubleValue());
142 153
					}
143 154

  
144
					Geometry geom = source.getGeometry(i);
145
					sym.setText(vv[idTextField].toString());
155
					Geometry geom = (Geometry)feature.getDefaultGeometry();
156
					sym.setText(feature.get(idTextField).toString());
146 157
					sym.setRotation(rotation);
147 158

  
148 159
					FLabel[] aux = geom.createLabels(0, true);
......
152 163
						sym.draw(g, null, p, cancel);
153 164
					}
154 165
				}
155
			} catch (VisitorException e) {
156
				Logger.getAnonymousLogger().log(Level.SEVERE, "Could not get the layer extent.\n" +
157
						e.getMessage());
158
			} catch (ExpansionFileReadException e) {
159
				Logger.getAnonymousLogger().log(Level.SEVERE, "Could not draw annotation in the layer" +
160
						"\""+layer.getName()+"\".\nIs the layer being edited?.\n"+e.getMessage());
161 166
			} catch (ReadException e) {
162 167
				Logger.getAnonymousLogger().log(Level.SEVERE, "Could not draw annotation in the layer.\n" +
163 168
						e.getMessage());
......
199 204

  
200 205
	public String getRotationField() throws ReadException {
201 206
		if (idRotationField == -1) return null;
202
		return ((SelectableDataSource) layer.getRecordset())
203
				.getFieldName(idRotationField);
207
		return ((FeatureType)layer.getFeatureStore().getFeatureTypes().get(0)).getByOrder(idRotationField).getName();
204 208
	}
205 209

  
206 210
	public int getRotationFieldId() {
......
213 217

  
214 218
	public String getTextField() throws ReadException {
215 219
		if (idTextField == -1) return null;
216
		return ((SelectableDataSource) layer.getRecordset())
217
				.getFieldName(idTextField);
220
		return ((FeatureType)layer.getFeatureStore().getFeatureTypes().get(0)).getByOrder(idTextField).getName();
218 221
	}
219 222

  
220 223
	public int getTextFieldId() {
......
227 230

  
228 231
	public String getHeightField() throws ReadException {
229 232
		if (idHeightField == -1) return null;
230
		return ((SelectableDataSource) layer.getRecordset())
231
				.getFieldName(idHeightField);
233
		return ((FeatureType)layer.getFeatureStore().getFeatureTypes().get(0)).getByOrder(idHeightField).getName();
232 234
	}
233 235

  
234 236
	public int getHeightFieldId() {
......
255 257

  
256 258
	public void setTextField(String textFieldName) {
257 259
		try {
258
			idTextField = ((SelectableDataSource) layer.getRecordset())
259
								.getFieldIndexByName(textFieldName);
260
		} catch (ReadDriverException e) {
260
			idTextField = ((FeatureType)layer.getFeatureStore().getFeatureTypes().get(0)).getFieldIndex(textFieldName);
261
		} catch (ReadException e) {
261 262
			Logger.getAnonymousLogger().log(Level.SEVERE, e.getMessage());
262 263
		}
263 264
	}
......
265 266
	public void setRotationField(String rotationFieldName) {
266 267
		if (rotationFieldName != null) {
267 268
			try {
268
				idRotationField = ((SelectableDataSource) layer.getRecordset())
269
					.getFieldIndexByName(rotationFieldName);
270
			} catch (ReadDriverException e) {
269
				idRotationField = ((FeatureType)layer.getFeatureStore().getFeatureTypes().get(0)).getFieldIndex(rotationFieldName);
270
			} catch (ReadException e) {
271 271
				Logger.getAnonymousLogger().log(Level.SEVERE, e.getMessage());
272 272
			}
273 273
		} else idRotationField = -1;
......
282 282
	public void setHeightField(String heightFieldName) {
283 283
		if (heightFieldName != null) {
284 284
			try {
285
				idHeightField = ((SelectableDataSource) layer.getRecordset())
286
				.getFieldIndexByName(heightFieldName);
285
				idHeightField = ((FeatureType)layer.getFeatureStore().getFeatureTypes().get(0)).getFieldIndex(heightFieldName);
287 286
			} catch (ReadException e) {
288 287
				Logger.getAnonymousLogger().log(Level.SEVERE, e.getMessage());
289 288
			}
......
291 290
	}
292 291

  
293 292

  
294
	public void print(Graphics2D g, ViewPort viewPort, Cancellable cancel, PrintRequestAttributeSet properties) throws ReadDriverException {
293
	public void print(Graphics2D g, ViewPort viewPort, Cancellable cancel, PrintRequestAttributeSet properties) throws ReadException {
295 294
		isPrinting = true;
296 295
		PrintQuality resolution=(PrintQuality)properties.get(PrintQuality.class);
297 296
		if (resolution.equals(PrintQuality.NORMAL)){
branches/v2_0_0_prep/libraries/libFMap/src/org/gvsig/fmap/mapcontext/rendering/legend/styling/DefaultLabelingMethod.java
107 107

  
108 108
	public FeatureCollection getFeatureIteratorByLabelClass(FLyrVect layer, LabelClass lc, ViewPort viewPort, String[] usedFields)
109 109
	throws ReadException {
110
		return layer.getSource().getFeatureIterator(
111
					viewPort.getAdjustedExtent(), usedFields,
112
					layer.getProjection(), true);
110
		return layer.getFeatureStore().getDataCollection(usedFields,null,order);
111
//		layer.getSource().getFeatureIterator(
112
//					viewPort.getAdjustedExtent(), usedFields,
113
//					layer.getProjection(), true);
113 114
	}
114 115

  
115 116
	public boolean definesPriorities() {
branches/v2_0_0_prep/libraries/libFMap/src/org/gvsig/fmap/mapcontext/MapContext.java
1002 1002
			throw new RuntimeException(
1003 1003
					"No se espera que SelectByPointVisitor lance esta excepci�n",
1004 1004
					e1);
1005
		} catch (VisitorException e) {
1006
			throw new RuntimeException(
1007
					"No se espera que SelectByPointVisitor lance esta excepci�n",
1008
					e);
1009 1005
		}
1010 1006

  
1011 1007
		return visitor.getSelectBound();
......
1030 1026
	 * @throws ReadDriverException if fails reading with the driver.
1031 1027
	 */
1032 1028
	public void draw(BufferedImage image, Graphics2D g, Cancellable cancel,
1033
			double scale) throws ReadDriverException {
1029
			double scale) throws ReadException {
1034 1030
		if (viewPort.getExtent() == null) {
1035 1031
			// System.err.println("viewPort.getExtent() = null");
1036 1032
			return;
......
1187 1183
	 * @see GraphicLayer#draw(BufferedImage, Graphics2D, ViewPort, Cancellable, double)
1188 1184
	 */
1189 1185
	public void drawGraphics(BufferedImage image, Graphics2D g,
1190
			Cancellable cancel, double scale) throws ReadDriverException {
1186
			Cancellable cancel, double scale) throws ReadException {
1191 1187
		if (viewPort == null)
1192 1188
			return;
1193 1189
		tracLayer.draw(image, g, viewPort, cancel, scale);
......
1206 1202
	 * @see #draw(BufferedImage, Graphics2D, Cancellable, double)
1207 1203
	 */
1208 1204
	public void draw(BufferedImage image, Graphics2D g, double scale)
1209
			throws ReadDriverException {
1205
			throws ReadException {
1210 1206
		layers.setDirty(true);
1211 1207
		draw(image, g, new Cancellable() {
1212 1208
			/**
......
1272 1268
	 *
1273 1269
	 * @see FLayers#getFullExtent()
1274 1270
	 */
1275
	public Rectangle2D getFullExtent() throws ReadDriverException {
1271
	public Rectangle2D getFullExtent() throws ReadException {
1276 1272
		return layers.getFullExtent();
1277 1273
	}
1278 1274

  
......
1413 1409
				if (lyr.isAvailable()) {
1414 1410
					try {
1415 1411
						getViewPort().setExtent(lyr.getFullExtent());
1416
					} catch (ReadDriverException e1) {
1412
					} catch (ReadException e1) {
1417 1413
						e1.printStackTrace();
1418 1414
					}
1419 1415
				}
......
1442 1438
				c.addLegendListener(eventBuffer);
1443 1439
			}
1444 1440

  
1445
			if (lyr instanceof AlphanumericData) {
1446
				Selectable s=null;
1447
				try {
1448
					s = ((AlphanumericData) lyr).getRecordset();
1449
					if (s!=null) {
1450
						s.addSelectionListener(eventBuffer);
1451
					}
1452
				} catch (ReadDriverException e1) {
1453
					e1.printStackTrace();
1454
				}
1455

  
1456
			}
1441
//			if (lyr instanceof AlphanumericData) {
1442
//				Selectable s=null;
1443
//				try {
1444
//					s = ((AlphanumericData) lyr).getRecordset();
1445
//					if (s!=null) {
1446
//						s.addSelectionListener(eventBuffer);
1447
//					}
1448
//				} catch (ReadException e1) {
1449
//					e1.printStackTrace();
1450
//				}
1451
//
1452
//			}
1457 1453
			if (lyr instanceof FLayers){
1458 1454
				FLayers lyrs=(FLayers)lyr;
1459 1455
				for(int i=0;i<lyrs.getLayersCount();i++){

Also available in: Unified diff