Revision 333 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.polyline/src/main/java/org/gvsig/vectorediting/lib/prov/polyline/PolylineEditingProvider.java

View differences:

PolylineEditingProvider.java
25 25
package org.gvsig.vectorediting.lib.prov.polyline;
26 26

  
27 27
import java.util.ArrayList;
28
import java.util.Iterator;
28 29
import java.util.LinkedHashMap;
29 30
import java.util.List;
30 31
import java.util.Map;
......
43 44
import org.gvsig.fmap.geom.primitive.Point;
44 45
import org.gvsig.fmap.geom.primitive.Surface;
45 46
import org.gvsig.fmap.geom.type.GeometryType;
47
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
46 48
import org.gvsig.tools.ToolsLocator;
47 49
import org.gvsig.tools.dynobject.DynObject;
48 50
import org.gvsig.tools.exception.BaseException;
49 51
import org.gvsig.tools.i18n.I18nManager;
50 52
import org.gvsig.tools.service.spi.ProviderServices;
51 53
import org.gvsig.vectorediting.lib.api.DrawingStatus;
54
import org.gvsig.vectorediting.lib.api.DrawingStatus.Status;
52 55
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
53 56
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
54 57
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
......
61 64
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter;
62 65
import org.gvsig.vectorediting.lib.spi.EditingProvider;
63 66
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
67
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
68
import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
64 69
import org.gvsig.vectorediting.lib.spi.EditingProviderServices;
65 70

  
66 71
public class PolylineEditingProvider extends AbstractEditingProvider implements
......
124 129
     */
125 130
    private DrawingStatus calculatePolyline(Point lastPosition)
126 131
        throws VectorEditingException {
127
        DefaultDrawingStatus geometries = new DefaultDrawingStatus();
132
        DefaultDrawingStatus drawingStatus = new DefaultDrawingStatus();
133
        EditingProviderManager editingProviderManager =
134
            EditingProviderLocator.getProviderManager();
135
        ISymbol lineSymbolEditing = editingProviderManager.getSymbol("line-symbol-editing");
136
        ISymbol auxiliaryLineSymbolEditing = editingProviderManager.getSymbol("auxiliary-line-symbol-editing");
137
        ISymbol auxiliaryPointSymbolEditing = editingProviderManager.getSymbol("auxiliary-point-symbol-editing");
138

  
139

  
128 140
        Double antm = null;
129 141
        Double antb = null;
130 142
        Double m = null;
......
158 170
                }
159 171

  
160 172
                if (nextPoint == null) {
161
                    return geometries;
173
                    return drawingStatus;
162 174
                }
163 175
                if (polyLinePoint.isArcMode()) {
164 176
                    try {
......
320 332

  
321 333
                    // Draw geometries.
322 334
                    if (addGeom) {
323
                        geometries.addGeometry(lineAntPointToPoint);
324
                        geometries.addGeometry(center);
335
                        drawingStatus.addStatus(point, auxiliaryPointSymbolEditing, "");
336
                        drawingStatus.addStatus(nextPoint, auxiliaryPointSymbolEditing, "");
337
                        drawingStatus.addStatus(center, auxiliaryPointSymbolEditing, "");
338
                        drawingStatus.addStatus(lineAntPointToPoint, auxiliaryLineSymbolEditing, "");
339

  
325 340
                    }
326
                    geometries.addGeometry(arco);
341
                    drawingStatus.addStatus(arco, lineSymbolEditing, "");
327 342

  
328 343
                } else {
329 344
                    try {
......
332 347
                        Curve geometry =
333 348
                            editingProviderServices.createLine(point,
334 349
                                nextPoint, subtype);
335
                        geometries.addGeometry(geometry);
350
                        if (addGeom) {
351
                            drawingStatus.addStatus(point, auxiliaryPointSymbolEditing, "");
352
                            drawingStatus.addStatus(nextPoint, auxiliaryPointSymbolEditing, "");
353
                        }
354
                        drawingStatus.addStatus(geometry, lineSymbolEditing, "");
355

  
336 356
                    } catch (Exception e) {
337 357
                        throw new DrawServiceException(e);
338 358
                    }
......
343 363
                    right = (nextPoint.getX() >= point.getX());
344 364
                }
345 365
            }
346
            return geometries;
366
            return drawingStatus;
347 367
        }
348 368
        return null;
349 369
    }
......
370 390

  
371 391
    public DrawingStatus getDrawingStatus(Point mousePosition)
372 392
        throws DrawServiceException {
393

  
373 394
        try {
374 395
            return calculatePolyline(mousePosition);
396

  
375 397
        } catch (Exception e) {
376 398
            throw new DrawServiceException(e);
377 399
        }

Also available in: Unified diff