Revision 193

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.arc/src/main/java/org/gvsig/vectorediting/lib/prov/arc/ArcEditingProvider.java
36 36
import org.gvsig.fmap.geom.primitive.Curve;
37 37
import org.gvsig.fmap.geom.primitive.Point;
38 38
import org.gvsig.fmap.geom.type.GeometryType;
39
import org.gvsig.tools.ToolsLocator;
40 39
import org.gvsig.tools.dynobject.DynObject;
41
import org.gvsig.tools.i18n.I18nManager;
42 40
import org.gvsig.tools.service.spi.ProviderServices;
43 41
import org.gvsig.vectorediting.lib.api.DrawingStatus;
44 42
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
......
62 60
public class ArcEditingProvider extends AbstractEditingProvider implements
63 61
    EditingProvider {
64 62

  
65
    private I18nManager i18nManager = ToolsLocator.getI18nManager();
63
    private EditingServiceParameter startPoint;
66 64

  
67
    private EditingServiceParameter startPoint =
68
        new DefaultEditingServiceParameter("Start point",
69
            i18nManager.getTranslation("start_point"), TYPE.POSITION);
65
    private EditingServiceParameter endPoint;
70 66

  
71
    private EditingServiceParameter endPoint =
72
        new DefaultEditingServiceParameter("End point",
73
            i18nManager.getTranslation("end_point"), TYPE.POSITION);
67
    private EditingServiceParameter middlePoint;
74 68

  
75
    private EditingServiceParameter middlePoint =
76
        new DefaultEditingServiceParameter("Middle point",
77
            i18nManager.getTranslation("middle_point"), TYPE.POSITION);
78

  
79 69
    private Map<EditingServiceParameter, Object> values;
80 70

  
81 71
    private FeatureStore featureStore;
82 72

  
83 73
    /**
74
     * Default constructor.
75
     * 
84 76
     * @param providerServices
77
     *            available services for this provider
78
     * @param parameters
79
     *            of this provider
85 80
     */
86 81
    public ArcEditingProvider(ProviderServices providerServices,
87 82
        DynObject parameters) {
88 83
        super(providerServices);
84

  
89 85
        this.featureStore =
90 86
            (FeatureStore) parameters
91 87
                .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
88

  
89
        this.startPoint =
90
            new DefaultEditingServiceParameter("Start point", "start_point",
91
                TYPE.POSITION);
92

  
93
        this.endPoint =
94
            new DefaultEditingServiceParameter("End point", "end_point",
95
                TYPE.POSITION);
96

  
97
        this.middlePoint =
98
            new DefaultEditingServiceParameter("Middle point", "middle_point",
99
                TYPE.POSITION);
92 100
    }
93 101

  
94 102
    /*
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.circlecr/src/main/java/org/gvsig/vectorediting/lib/prov/circlecr/CircleCREditingProvider.java
38 38
import org.gvsig.fmap.geom.primitive.Curve;
39 39
import org.gvsig.fmap.geom.primitive.Point;
40 40
import org.gvsig.fmap.geom.type.GeometryType;
41
import org.gvsig.tools.ToolsLocator;
42 41
import org.gvsig.tools.dynobject.DynObject;
43
import org.gvsig.tools.i18n.I18nManager;
44 42
import org.gvsig.tools.service.spi.ProviderServices;
45 43
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
46 44
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
......
58 56
public class CircleCREditingProvider extends AbstractEditingProvider implements
59 57
    EditingProvider {
60 58

  
61
    private I18nManager i18nManager = ToolsLocator.getI18nManager();
59
    protected EditingServiceParameter center;
62 60

  
63
    protected EditingServiceParameter center =
64
        new DefaultEditingServiceParameter("Center",
65
            i18nManager.getTranslation("center"), TYPE.POSITION);
61
    protected EditingServiceParameter radius;
66 62

  
67
    protected EditingServiceParameter radius =
68
        new DefaultEditingServiceParameter("Radius",
69
            i18nManager.getTranslation("radius"), TYPE.POSITION, TYPE.VALUE);
70

  
71 63
    protected Map<EditingServiceParameter, Object> values;
72 64

  
73 65
    protected FeatureStore featureStore;
......
75 67
    public CircleCREditingProvider(ProviderServices providerServices,
76 68
        DynObject parameters) {
77 69
        super(providerServices);
70

  
78 71
        this.featureStore =
79 72
            (FeatureStore) parameters
80 73
                .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
74

  
75
        this.center =
76
            new DefaultEditingServiceParameter("Center", "center",
77
                TYPE.POSITION);
78

  
79
        this.radius =
80
            new DefaultEditingServiceParameter("Radius", "radius",
81
                TYPE.POSITION, TYPE.VALUE);
81 82
    }
82 83

  
83 84
    public DefaultDrawingStatus getDrawingStatus(Point mousePosition)
......
158 159
                    return;
159 160
                }
160 161

  
161
            } 
162
            }
162 163
        }
163 164
        throw new InvalidEntryException(null);
164 165
    }
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.line/src/main/java/org/gvsig/vectorediting/lib/prov/line/LineEditingProvider.java
58 58
import org.gvsig.fmap.geom.primitive.Curve;
59 59
import org.gvsig.fmap.geom.primitive.Point;
60 60
import org.gvsig.fmap.geom.type.GeometryType;
61
import org.gvsig.tools.ToolsLocator;
62 61
import org.gvsig.tools.dynobject.DynObject;
63
import org.gvsig.tools.i18n.I18nManager;
64 62
import org.gvsig.tools.service.spi.ProviderServices;
65 63
import org.gvsig.vectorediting.lib.api.DrawingStatus;
66 64
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
......
84 82
public class LineEditingProvider extends AbstractEditingProvider implements
85 83
    EditingProvider {
86 84

  
87
    private I18nManager i18nManager = ToolsLocator.getI18nManager();
85
    private EditingServiceParameter firstPoint;
88 86

  
89
    private EditingServiceParameter firstPoint =
90
        new DefaultEditingServiceParameter("First point",
91
            i18nManager.getTranslation("first_point"), TYPE.POSITION);
87
    private EditingServiceParameter secondPoint;
92 88

  
93
    private EditingServiceParameter secondPoint =
94
        new DefaultEditingServiceParameter("Second point",
95
            i18nManager.getTranslation("second_point"), TYPE.POSITION);
96

  
97 89
    private Map<EditingServiceParameter, Object> values;
98 90

  
99 91
    private FeatureStore featureStore;
100 92

  
101 93
    /**
94
     * Default constructor.
95
     * 
102 96
     * @param providerServices
97
     *            available services for this provider
98
     * @param parameters
99
     *            of this provider
103 100
     */
104 101
    public LineEditingProvider(ProviderServices providerServices,
105 102
        DynObject parameters) {
......
107 104
        this.featureStore =
108 105
            (FeatureStore) parameters
109 106
                .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
107

  
108
        this.firstPoint =
109
            new DefaultEditingServiceParameter("First point", "first_point",
110
                TYPE.POSITION);
111

  
112
        this.secondPoint =
113
            new DefaultEditingServiceParameter("Second point", "second_point",
114
                TYPE.POSITION);
115

  
110 116
    }
111 117

  
112 118
    /*
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.regularpolygon/src/main/java/org/gvsig/vectorediting/lib/prov/regularpolygon/RegularPolygonEditingProvider.java
41 41
import org.gvsig.fmap.geom.primitive.Point;
42 42
import org.gvsig.fmap.geom.primitive.Surface;
43 43
import org.gvsig.fmap.geom.type.GeometryType;
44
import org.gvsig.tools.ToolsLocator;
44 45
import org.gvsig.tools.dynobject.DynObject;
45 46
import org.gvsig.tools.exception.BaseException;
47
import org.gvsig.tools.i18n.I18nManager;
46 48
import org.gvsig.tools.service.spi.ProviderServices;
47 49
import org.gvsig.vectorediting.lib.api.DrawingStatus;
48 50
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
......
86 88
        this.featureStore =
87 89
            (FeatureStore) parameters
88 90
                .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
91
        
92
        polygonSides =
93
            new DefaultEditingServiceParameter("sides",
94
                "sides_of_regular_polygon", EditingServiceParameter.TYPE.VALUE);
95

  
96
        options = new LinkedHashMap<String, String>();
97
        options.put("I", "inscribed");
98
        options.put("C", "circumscribed");
99

  
100
        mode =
101
            new DefaultEditingServiceParameter("mode",
102
                "inscribed_or_circumscribed", options,
103
                EditingServiceParameter.TYPE.OPTION);
104

  
105
        center =
106
            new DefaultEditingServiceParameter("center",
107
                "center_of_regular_polygon",
108
                EditingServiceParameter.TYPE.POSITION);
109

  
110
        pointOfCircle =
111
            new DefaultEditingServiceParameter("point_of_circle",
112
                "point_of_circle", EditingServiceParameter.TYPE.POSITION);
89 113
    }
90 114

  
91 115
    public EditingServiceParameter next() {
......
161 185
    protected Curve calculateRegularPolygon(String modeValue,
162 186
        Point centerValue, Point pointOfCircle, int sidesValue)
163 187
        throws BaseException {
164

  
188
        
165 189
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
166 190

  
167 191
        EditingProviderServices editingProviderServices =
......
416 440
    }
417 441

  
418 442
    public void start() throws StartServiceException {
419

  
420
        polygonSides =
421
            new DefaultEditingServiceParameter("sides",
422
                "sides_of_regular_polygon", EditingServiceParameter.TYPE.VALUE);
423

  
424
        options = new LinkedHashMap<String, String>();
425
        options.put("I", "inscribed");
426
        options.put("C", "circumscribed");
427

  
428
        mode =
429
            new DefaultEditingServiceParameter("mode",
430
                "inscribed_or_circumscribed", options,
431
                EditingServiceParameter.TYPE.OPTION);
432

  
433
        center =
434
            new DefaultEditingServiceParameter("center",
435
                "center_of_regular_polygon",
436
                EditingServiceParameter.TYPE.POSITION);
437

  
438
        pointOfCircle =
439
            new DefaultEditingServiceParameter("point_of_circle",
440
                "point_of_circle", EditingServiceParameter.TYPE.POSITION);
441

  
442 443
        values = new HashMap<EditingServiceParameter, Object>();
443 444
    }
444 445

  
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
43 43
import org.gvsig.fmap.geom.primitive.Point;
44 44
import org.gvsig.fmap.geom.primitive.Surface;
45 45
import org.gvsig.fmap.geom.type.GeometryType;
46
import org.gvsig.tools.ToolsLocator;
46 47
import org.gvsig.tools.dynobject.DynObject;
47 48
import org.gvsig.tools.exception.BaseException;
49
import org.gvsig.tools.i18n.I18nManager;
48 50
import org.gvsig.tools.service.spi.ProviderServices;
49 51
import org.gvsig.vectorediting.lib.api.DrawingStatus;
50 52
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
......
84 86
    public PolylineEditingProvider(ProviderServices providerServices,
85 87
        DynObject parameters) {
86 88
        super(providerServices);
89

  
90
        // Initialize all provider variables.
87 91
        this.featureStore =
88 92
            (FeatureStore) parameters
89 93
                .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
94

  
95
        I18nManager i18nManager = ToolsLocator.getI18nManager();
96
        
97
        options = new LinkedHashMap<String, String>();
98
        options.put(i18nManager.getTranslation("key_arc_mode"), "arc_mode");
99
        options.put(i18nManager.getTranslation("key_line_mode"), "line_mode");
100
        options.put(i18nManager.getTranslation("key_close_polyline"),
101
            "close_polyline");
102
        options.put(i18nManager.getTranslation("key_finish"), "finish");
103

  
104
        points =
105
            new DefaultEditingServiceParameter("points", "indicate_new_point",
106
                options, TYPE.LIST_POSITIONS, TYPE.OPTION);
107

  
108
        arcMode = false;
109
        finishPolyline = false;
110
        closeGeometry = false;
90 111
    }
91 112

  
92 113
    /**
114
     * Calculates polyline with stored values and last position received as
115
     * parameter. If last position is null calculates only with stored values.
93 116
     *
94
     *
95 117
     * @param lastPosition
96
     * @return
97
     * @throws VectorEditingException
118
     *            of polyline.
119
     * @return A drawing status value with a list of geometries. See
120
     *         {@link DrawingStatus#getGeometries()}.
98 121
     */
99 122
    private DrawingStatus calculatePolyline(Point lastPosition)
100 123
        throws VectorEditingException {
......
471 494
        // Stop service;
472 495
        stop();
473 496

  
474
        // Initialize all provider variables.
475 497
        values = new ArrayList<MyPolyLinePoint>();
476

  
477
        options = new LinkedHashMap<String, String>();
478
        options.put("A", "arc_mode");
479
        options.put("L", "line_mode");
480
        options.put("C", "close_polyline");
481
        options.put("F", "finish");
482

  
483
        points =
484
            new DefaultEditingServiceParameter("Points", "indicate_new_point",
485
                options, TYPE.LIST_POSITIONS, TYPE.OPTION);
486

  
487
        arcMode = false;
488
        finishPolyline = false;
489
        closeGeometry = false;
490

  
491 498
    }
492 499

  
493 500
    public void stop() {
......
503 510
        Object value) throws InvalidEntryException {
504 511
        if (value instanceof String) {
505 512
            String option = (String) value;
506
            if (options.containsKey(option)) {
513
            I18nManager i18nManager = ToolsLocator.getI18nManager();
514
            
515
            if (option.equalsIgnoreCase(i18nManager
516
                .getTranslation("key_finish"))) {
517
                finishPolyline = true;
518
                return;
519
            }
507 520

  
508
                if (option.equalsIgnoreCase("F")) {
509
                    finishPolyline = true;
510
                }
521
            if (values.size() >= 2) {
511 522

  
512
                if (values.size() >= 2) {
523
                if (option.equalsIgnoreCase(i18nManager
524
                    .getTranslation("key_arc_mode"))) {
513 525

  
514
                    if (option.equalsIgnoreCase("A")) {
515
                        arcMode = true;
516
                    } else if (option.equalsIgnoreCase("L")) {
517
                        arcMode = false;
518
                    } else if (option.equalsIgnoreCase("C")) {
519
                        closeGeometry = true;
520
                        finishPolyline = true;
521
                    }
526
                    arcMode = true;
522 527

  
523
                }
528
                } else if (option.equalsIgnoreCase(i18nManager
529
                    .getTranslation("key_line_mode"))) {
524 530

  
525
                if (values.size() > 0) {
526
                    values.get(values.size() - 1).setArcMode(arcMode);
527
                    return;
531
                    arcMode = false;
532

  
533
                } else if (option.equalsIgnoreCase(i18nManager
534
                    .getTranslation("key_close_polyline"))) {
535

  
536
                    closeGeometry = true;
537
                    finishPolyline = true;
528 538
                }
539
            }
529 540

  
530
            } else {
531
                throw new InvalidEntryException(null);
541
            if (values.size() > 0) {
542
                values.get(values.size() - 1).setArcMode(arcMode);
543
                return;
532 544
            }
545

  
533 546
        } else if (param == points && value instanceof Point) {
534 547
            values.add(new MyPolyLinePoint((Point) value, arcMode));
548
            return;
535 549
        }
550
        throw new InvalidEntryException(null);
536 551
    }
537 552

  
538 553
    public void setValue(Object value) throws InvalidEntryException {
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.ellipse/src/main/java/org/gvsig/vectorediting/lib/prov/ellipse/EllipseEditingProvider.java
33 33
import org.gvsig.fmap.geom.Geometry;
34 34
import org.gvsig.fmap.geom.primitive.Curve;
35 35
import org.gvsig.fmap.geom.primitive.Point;
36
import org.gvsig.tools.ToolsLocator;
37 36
import org.gvsig.tools.dynobject.DynObject;
38
import org.gvsig.tools.i18n.I18nManager;
39 37
import org.gvsig.tools.service.spi.ProviderServices;
40 38
import org.gvsig.vectorediting.lib.api.DrawingStatus;
41 39
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
......
71 69
        this.featureStore =
72 70
            (FeatureStore) parameters
73 71
                .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
72
        
73
        this.firstPointAxisA =
74
            new DefaultEditingServiceParameter("First point of A axis ",
75
                "first_point_A_axis",
76
                EditingServiceParameter.TYPE.POSITION);
77

  
78
        this.secondPointAxisA =
79
            new DefaultEditingServiceParameter("Second point of A axis",
80
                "second_point_A_axis",
81
                EditingServiceParameter.TYPE.POSITION);
82

  
83
        this.lengthAxisB =
84
            new DefaultEditingServiceParameter("Length of B axis",
85
                "length_of_B_axis",
86
                EditingServiceParameter.TYPE.POSITION,
87
                EditingServiceParameter.TYPE.VALUE);
74 88
    }
75 89

  
76 90
    public EditingServiceParameter next() {
......
296 310
    }
297 311

  
298 312
    public void start() throws StartServiceException {
299

  
300
        I18nManager i18nManager = ToolsLocator.getI18nManager();
301
        firstPointAxisA =
302
            new DefaultEditingServiceParameter("First point of A axis ",
303
                i18nManager.getTranslation("first_point_A_axis"),
304
                EditingServiceParameter.TYPE.POSITION);
305

  
306
        secondPointAxisA =
307
            new DefaultEditingServiceParameter("Second point of A axis",
308
                i18nManager.getTranslation("second_point_A_axis"),
309
                EditingServiceParameter.TYPE.POSITION);
310

  
311
        lengthAxisB =
312
            new DefaultEditingServiceParameter("Length of B axis",
313
                i18nManager.getTranslation("length_of_B_axis"),
314
                EditingServiceParameter.TYPE.POSITION,
315
                EditingServiceParameter.TYPE.VALUE);
316

  
317 313
        values = new HashMap<EditingServiceParameter, Object>();
318 314
    }
319 315

  
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.insertpoint/src/main/java/org/gvsig/vectorediting/lib/prov/insertpoint/InsertPointEditingProvider.java
30 30
import org.gvsig.fmap.dal.feature.FeatureStore;
31 31
import org.gvsig.fmap.geom.Geometry;
32 32
import org.gvsig.fmap.geom.primitive.Point;
33
import org.gvsig.tools.ToolsLocator;
34 33
import org.gvsig.tools.dynobject.DynObject;
35
import org.gvsig.tools.i18n.I18nManager;
36 34
import org.gvsig.tools.service.spi.ProviderServices;
37 35
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
38 36
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
......
54 52
    private EditingProviderServices editingProviderServices =
55 53
        (EditingProviderServices) getProviderServices();
56 54

  
57
    private I18nManager i18nManager = ToolsLocator.getI18nManager();
55
    private EditingServiceParameter point;
58 56

  
59
    private EditingServiceParameter point = new DefaultEditingServiceParameter(
60
        "Insert point", i18nManager.getTranslation("indicate_new_point"),
61
        TYPE.POSITION);
62

  
63 57
    private Point valuePoint;
64 58

  
65 59
    private FeatureStore featureStore;
......
70 64
        this.featureStore =
71 65
            (FeatureStore) parameters
72 66
                .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
73
    }
74 67

  
75
    public void setProviderServices(ProviderServices services) {
76
        // TODO Auto-generated method stub
77

  
68
        this.point =
69
            new DefaultEditingServiceParameter("Insert point",
70
                "indicate_new_point", TYPE.POSITION);
78 71
    }
79 72

  
80 73
    public DefaultDrawingStatus getDrawingStatus(Point mousePosition)
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.internalpolygon/src/main/java/org/gvsig/vectorediting/lib/prov/internalpolygon/InternalPolygonEditingProvider.java
39 39
import org.gvsig.fmap.geom.primitive.Point;
40 40
import org.gvsig.fmap.geom.primitive.Surface;
41 41
import org.gvsig.fmap.geom.type.GeometryType;
42
import org.gvsig.tools.ToolsLocator;
43 42
import org.gvsig.tools.dispose.DisposableIterator;
44 43
import org.gvsig.tools.dynobject.DynObject;
45 44
import org.gvsig.tools.exception.BaseException;
46
import org.gvsig.tools.i18n.I18nManager;
47 45
import org.gvsig.tools.service.spi.ProviderServices;
48 46
import org.gvsig.vectorediting.lib.api.DrawingStatus;
49 47
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
......
62 60
public class InternalPolygonEditingProvider extends AbstractEditingProvider
63 61
    implements EditingProvider {
64 62

  
65
    private I18nManager i18nManager = ToolsLocator.getI18nManager();
63
    private EditingServiceParameter selectionParameter;
66 64

  
67
    private EditingProviderServices editingProviderServices =
68
        (EditingProviderServices) getProviderServices();
65
    private EditingServiceParameter geometryParameter;
69 66

  
70
    private EditingServiceParameter selectionParameter =
71
        new DefaultEditingServiceParameter("Select geometry",
72
            i18nManager.getTranslation("selection"), TYPE.SELECTION);
73

  
74
    private EditingServiceParameter geometryParameter =
75
        new DefaultEditingServiceParameter("Draw geometry",
76
            i18nManager.getTranslation("draw_geometry"),
77
            Geometry.TYPES.MULTISURFACE, TYPE.GEOMETRY);
78

  
79 67
    private FeatureStore featureStore;
80 68

  
81 69
    private Map<EditingServiceParameter, Object> values;
......
86 74
        this.featureStore =
87 75
            (FeatureStore) parameters
88 76
                .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
77

  
78
        this.selectionParameter =
79
            new DefaultEditingServiceParameter("Select geometry", "selection",
80
                TYPE.SELECTION);
81

  
82
        this.geometryParameter =
83
            new DefaultEditingServiceParameter("Draw geometry",
84
                "draw_geometry", Geometry.TYPES.MULTISURFACE, TYPE.GEOMETRY);
89 85
    }
90 86

  
91 87
    public EditingServiceParameter next() {
......
219 215

  
220 216
                            for (int i = 0; i < multiSurface
221 217
                                .getPrimitivesNumber(); i++) {
222
                                Surface surface =
223
                                    multiSurface.getSurfaceAt(i);
218
                                Surface surface = multiSurface.getSurfaceAt(i);
224 219
                                newGeom = newGeom.difference(surface);
225 220
                            }
226 221

  
227 222
                        } else {
228 223
                            newGeom = newGeom.difference(geometry);
229 224
                        }
225
                        
226
                        EditingProviderServices editingProviderServices =
227
                            (EditingProviderServices) getProviderServices();
230 228

  
231 229
                        EditableFeature editableFeature = feature.getEditable();
232 230
                        editableFeature.setDefaultGeometry(newGeom);

Also available in: Unified diff