Revision 11009 trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/rendering/styling/SimpleLabeling.java

View differences:

SimpleLabeling.java
43 43
*
44 44
* $Id$
45 45
* $Log$
46
* Revision 1.3  2007-03-28 16:48:01  jaume
46
* Revision 1.4  2007-04-02 16:34:56  jaume
47
* Styled labeling (start commiting)
48
*
49
* Revision 1.3  2007/03/28 16:48:01  jaume
47 50
* *** empty log message ***
48 51
*
49 52
* Revision 1.2  2007/03/26 14:40:38  jaume
......
163 166
			 ReadableVectorial rv = layer.getSource();
164 167
			 SelectableDataSource sds = rv.getRecordset();
165 168

  
166
			 ITextSymbol sym = lc.getLabelSymbol();
167 169
			 for(i=bs.nextSetBit(0); i>=0 && !cancel.isCanceled(); i=bs.nextSetBit(i+1)) {
168 170
				 IGeometry geom;
169 171
				 Integer index = new Integer(i);
170 172

  
171
				 String text = getText(index, sds);
172
				 sym.setText(text);
173
				 String[] texts = getText(index, sds);
174
				 geom = rv.getShape(i);
175
				 FShape labelShape = lc.getShape(g, geom);
176
				 if (labelShape != null) {
177
					 FShape[] places = placementConstraints.getLocationsFor(
178
							 geom, labelShape,
179
							 null);
173 180

  
174
				 geom = rv.getShape(i);
175
				 FShape[] shp = placementConstraints.getLocationsFor(geom, sym, null);
176
				 AffineTransform at = viewPort.getAffineTransform();
177
				 for (int j = 0; j < shp.length; j++) {
178
					 sym.draw(g, at, shp[i]);
181
					 for (int j = 0; j < places.length; j++) {
182
						 places[j].transform(viewPort.getAffineTransform());
183
						 lc.drawInsideRectangle(g, places[j].getBounds(), texts);
184
					 }
179 185
				 }
180

  
181 186
			 }
182 187
		 } catch (ExpansionFileReadException e) {
183 188
			 // TODO Auto-generated catch block
......
189 194
		 }
190 195
	}
191 196

  
192
	private String getText(Integer index, SelectableDataSource sds) throws ReadDriverException {
197
	private String[] getText(Integer index, SelectableDataSource sds) throws ReadDriverException {
193 198
		String text = (String) texts.get(index);
194 199
		if (text == null) {
195 200
			String expr = method.getDefaultLabelClass().getLabelExpression();
......
201 206
			text = sds.getFieldValue(index.longValue(), sds.getFieldIndexByName(fieldName)).toString();
202 207
			texts.put(index, text);
203 208
		}
204
		return text;
209
		return new String[] { text };
205 210
	}
206 211

  
207 212
	private TextPath getTreePath(Integer index, Graphics2D g, FShape shp, char[] text) {

Also available in: Unified diff