Revision 333 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.stretch/src/main/java/org/gvsig/vectorediting/lib/prov/stretch/StretchEditingProvider.java
StretchEditingProvider.java | ||
---|---|---|
21 | 21 |
import org.gvsig.fmap.geom.Geometry; |
22 | 22 |
import org.gvsig.fmap.geom.GeometryLocator; |
23 | 23 |
import org.gvsig.fmap.geom.GeometryManager; |
24 |
import org.gvsig.fmap.geom.aggregate.Aggregate; |
|
25 |
import org.gvsig.fmap.geom.aggregate.MultiCurve; |
|
24 | 26 |
import org.gvsig.fmap.geom.aggregate.MultiPrimitive; |
25 | 27 |
import org.gvsig.fmap.geom.aggregate.MultiSurface; |
26 | 28 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
27 | 29 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
28 | 30 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
31 |
import org.gvsig.fmap.geom.primitive.Curve; |
|
29 | 32 |
import org.gvsig.fmap.geom.primitive.Point; |
30 | 33 |
import org.gvsig.fmap.geom.primitive.Primitive; |
34 |
import org.gvsig.fmap.geom.primitive.Surface; |
|
31 | 35 |
import org.gvsig.fmap.geom.type.GeometryType; |
32 | 36 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
33 | 37 |
import org.gvsig.tools.ToolsLocator; |
... | ... | |
233 | 237 |
|
234 | 238 |
public DrawingStatus getDrawingStatus(Point mousePosition) |
235 | 239 |
throws DrawServiceException { |
236 |
DefaultDrawingStatus geometries = new DefaultDrawingStatus();
|
|
240 |
DefaultDrawingStatus drawingStatus = new DefaultDrawingStatus();
|
|
237 | 241 |
EditingProviderManager editingProviderManager = |
238 | 242 |
EditingProviderLocator.getProviderManager(); |
239 | 243 |
ISymbol selectedVertexEditingSymbol = editingProviderManager.getSymbol("selected-vertex-editing"); |
244 |
ISymbol lineSymbolEditing = editingProviderManager.getSymbol("line-symbol-editing"); |
|
245 |
ISymbol polygonSymbolEditing = editingProviderManager.getSymbol("poligon-symbol-editing"); |
|
240 | 246 |
|
241 | 247 |
FeatureSelection selection = |
242 | 248 |
(FeatureSelection) values.get(this.selectionParameter); |
... | ... | |
268 | 274 |
if(!selectedVertex.isEmpty()){ |
269 | 275 |
for (Iterator<Point> iterator = selectedVertex.iterator(); iterator.hasNext();) { |
270 | 276 |
Point point = (Point) iterator.next(); |
271 |
geometries.addStatus(point, selectedVertexEditingSymbol, "");
|
|
277 |
drawingStatus.addStatus(point, selectedVertexEditingSymbol, "");
|
|
272 | 278 |
} |
273 | 279 |
} |
274 | 280 |
|
... | ... | |
280 | 286 |
for (Iterator<Point> iterator = selectedVertex.iterator(); iterator.hasNext();) { |
281 | 287 |
Point point = (Point) ((Point) iterator.next()).cloneGeometry(); |
282 | 288 |
point.transform(at); |
283 |
geometries.addStatus(point, selectedVertexEditingSymbol, "");
|
|
289 |
drawingStatus.addStatus(point, selectedVertexEditingSymbol, "");
|
|
284 | 290 |
} |
285 | 291 |
} |
286 | 292 |
|
... | ... | |
291 | 297 |
while (it.hasNext()) { |
292 | 298 |
Feature feature = (Feature) it.next(); |
293 | 299 |
Geometry featureGeometry = feature.getDefaultGeometry(); |
294 |
geometries.addGeometry(applyTransform(featureGeometry, at, geometry)); |
|
300 |
Geometry transformedGeometry = applyTransform(featureGeometry, at, geometry); |
|
301 |
ISymbol symbol=null; |
|
302 |
if(transformedGeometry instanceof Curve || transformedGeometry instanceof MultiCurve){ |
|
303 |
symbol = lineSymbolEditing; |
|
304 |
} else if(transformedGeometry instanceof Surface || transformedGeometry instanceof MultiSurface){ |
|
305 |
symbol = polygonSymbolEditing; |
|
306 |
} |
|
307 |
if(transformedGeometry instanceof Aggregate){ |
|
308 |
int primitivesNumber = ((Aggregate)transformedGeometry).getPrimitivesNumber(); |
|
309 |
for (int i = 0; i < primitivesNumber; i++) { |
|
310 |
drawingStatus.addStatus(((Aggregate)transformedGeometry).getPrimitiveAt(i), symbol, ""); |
|
311 |
} |
|
312 |
} else { |
|
313 |
drawingStatus.addStatus(transformedGeometry, symbol, ""); |
|
314 |
} |
|
295 | 315 |
} |
296 | 316 |
} catch (BaseException e) { |
297 | 317 |
throw new InvalidEntryException(e); |
... | ... | |
300 | 320 |
} |
301 | 321 |
} |
302 | 322 |
} |
303 |
return geometries;
|
|
323 |
return drawingStatus;
|
|
304 | 324 |
} |
305 | 325 |
} catch (Exception e) { |
306 | 326 |
throw new DrawServiceException(e); |
Also available in: Unified diff