Revision 335 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.scale/src/main/java/org/gvsig/vectorediting/lib/prov/scale/ScaleEditingProvider.java
ScaleEditingProvider.java | ||
---|---|---|
25 | 25 |
|
26 | 26 |
|
27 | 27 |
|
28 |
import java.awt.Font; |
|
28 | 29 |
import java.awt.geom.AffineTransform; |
29 | 30 |
import java.util.ArrayList; |
30 | 31 |
import java.util.HashMap; |
... | ... | |
39 | 40 |
import org.gvsig.fmap.geom.Geometry; |
40 | 41 |
import org.gvsig.fmap.geom.GeometryLocator; |
41 | 42 |
import org.gvsig.fmap.geom.GeometryManager; |
43 |
import org.gvsig.fmap.geom.aggregate.Aggregate; |
|
44 |
import org.gvsig.fmap.geom.aggregate.MultiCurve; |
|
45 |
import org.gvsig.fmap.geom.aggregate.MultiPoint; |
|
46 |
import org.gvsig.fmap.geom.aggregate.MultiSurface; |
|
42 | 47 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
43 | 48 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
44 | 49 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
50 |
import org.gvsig.fmap.geom.primitive.Curve; |
|
45 | 51 |
import org.gvsig.fmap.geom.primitive.Line; |
46 | 52 |
import org.gvsig.fmap.geom.primitive.Point; |
53 |
import org.gvsig.fmap.geom.primitive.Surface; |
|
47 | 54 |
import org.gvsig.fmap.mapcontext.MapContext; |
48 | 55 |
import org.gvsig.fmap.mapcontext.ViewPort; |
49 | 56 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
... | ... | |
329 | 336 |
|
330 | 337 |
|
331 | 338 |
private void applyTransformToDrawingStatus( |
332 |
final DefaultDrawingStatus geometries, FeatureSelection selected,
|
|
339 |
final DefaultDrawingStatus drawingStatus, FeatureSelection selected,
|
|
333 | 340 |
final AffineTransform at) throws BaseException { |
341 |
|
|
342 |
EditingProviderManager editingProviderManager = |
|
343 |
EditingProviderLocator.getProviderManager(); |
|
344 |
|
|
345 |
final ISymbol lineSymbolEditing = editingProviderManager.getSymbol("line-symbol-editing"); |
|
346 |
final ISymbol polygonSymbolEditing = editingProviderManager.getSymbol("polygon-symbol-editing"); |
|
347 |
final ISymbol auxiliaryPointSymbolEditing = editingProviderManager.getSymbol("auxiliary-point-symbol-editing"); |
|
348 |
|
|
334 | 349 |
selected.accept(new Visitor() { |
335 | 350 |
|
336 | 351 |
public void visit(Object obj) throws VisitCanceledException, |
337 | 352 |
BaseException { |
338 | 353 |
Feature feature = (Feature) obj; |
339 |
Geometry geom = feature.getDefaultGeometry().cloneGeometry(); |
|
340 |
geom.transform(at); |
|
341 |
geometries.addGeometry(geom); |
|
342 | 354 |
|
355 |
Geometry transformedGeometry = feature.getDefaultGeometry().cloneGeometry(); |
|
356 |
transformedGeometry.transform(at); |
|
357 |
|
|
358 |
ISymbol symbol=null; |
|
359 |
if(transformedGeometry instanceof Curve || transformedGeometry instanceof MultiCurve){ |
|
360 |
symbol = lineSymbolEditing; |
|
361 |
} else if(transformedGeometry instanceof Surface || transformedGeometry instanceof MultiSurface){ |
|
362 |
symbol = polygonSymbolEditing; |
|
363 |
} else if(transformedGeometry instanceof Point || transformedGeometry instanceof MultiPoint){ |
|
364 |
symbol = auxiliaryPointSymbolEditing; |
|
365 |
} |
|
366 |
if(transformedGeometry instanceof Aggregate){ |
|
367 |
int primitivesNumber = ((Aggregate)transformedGeometry).getPrimitivesNumber(); |
|
368 |
for (int i = 0; i < primitivesNumber; i++) { |
|
369 |
drawingStatus.addStatus(((Aggregate)transformedGeometry).getPrimitiveAt(i), symbol, ""); |
|
370 |
} |
|
371 |
} else { |
|
372 |
drawingStatus.addStatus(transformedGeometry, symbol, ""); |
|
373 |
} |
|
374 |
|
|
375 |
|
|
343 | 376 |
} |
344 | 377 |
}); |
345 | 378 |
} |
Also available in: Unified diff