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

View differences:

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