Revision 11009 trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/rendering/styling/SimpleLabeling.java
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