Revision 575 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.spline/src/main/java/org/gvsig/vectorediting/lib/prov/spline/FilledSplineEditingProvider.java

View differences:

FilledSplineEditingProvider.java
25 25
package org.gvsig.vectorediting.lib.prov.spline;
26 26

  
27 27
import java.util.Iterator;
28
import java.util.LinkedHashMap;
29 28

  
30 29
import org.gvsig.fmap.geom.Geometry;
31 30
import org.gvsig.fmap.geom.GeometryLocator;
32 31
import org.gvsig.fmap.geom.GeometryManager;
33 32
import org.gvsig.fmap.geom.aggregate.MultiSurface;
33
import org.gvsig.fmap.geom.primitive.FilledSpline;
34 34
import org.gvsig.fmap.geom.primitive.Point;
35
import org.gvsig.fmap.geom.primitive.Spline;
36
import org.gvsig.fmap.geom.primitive.Surface;
37 35
import org.gvsig.fmap.geom.type.GeometryType;
38 36
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
39
import org.gvsig.tools.ToolsLocator;
40 37
import org.gvsig.tools.dynobject.DynObject;
41 38
import org.gvsig.tools.exception.BaseException;
42
import org.gvsig.tools.i18n.I18nManager;
43 39
import org.gvsig.tools.service.spi.ProviderServices;
44 40
import org.gvsig.vectorediting.lib.api.DrawingStatus;
45
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
46 41
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
47 42
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException;
48 43
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
49
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter;
50 44
import org.gvsig.vectorediting.lib.spi.EditingProvider;
51 45
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
52 46
import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
......
76 70
            EditingProviderLocator.getProviderManager();
77 71
        ISymbol polygonSymbolEditing = editingProviderManager.getSymbol("polygon-symbol-editing");
78 72
        ISymbol auxiliaryPointSymbolEditing = editingProviderManager.getSymbol("auxiliary-point-symbol-editing");
73
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
79 74

  
80

  
81 75
        if (values != null) {
82 76

  
83 77
            if (values.size() >= 1) {
......
92 86
                try {
93 87
                    int subtype =
94 88
                        editingProviderServices.getSubType(featureStore);
95
                    Spline spline =
96
                        editingProviderServices.createSpline(values, subtype);
97 89

  
98
                    spline.addVertex(mousePosition);
90
                    FilledSpline filledSpline = (FilledSpline) geometryManager.create(Geometry.TYPES.FILLEDSPLINE, subtype);
91
                    for (int i = 0; i < values.size(); i++) {
92
                        filledSpline.addVertex(values.get(i));
93
                    }
94
                    filledSpline.addVertex(mousePosition);
95
                    filledSpline.addVertex(values.get(0));
99 96

  
100
                    spline.addVertex(values.get(0));
101

  
102 97
                    drawingStatus.addStatus(mousePosition, auxiliaryPointSymbolEditing, "");
103
                    drawingStatus.addStatus(spline, polygonSymbolEditing, "");
98
                    drawingStatus.addStatus(filledSpline, polygonSymbolEditing, "");
104 99

  
105
//                    drawingStatus.addGeometry(spline);
106 100
                } catch (BaseException e) {
107 101
                    throw new DrawServiceException(e);
108 102
                }
......
117 111

  
118 112
            EditingProviderServices editingProviderServices =
119 113
                (EditingProviderServices) getProviderServices();
120
            GeometryManager geometryManager =
121
                GeometryLocator.getGeometryManager();
114
            GeometryManager geometryManager = GeometryLocator.getGeometryManager();
122 115

  
123 116
            try {
124
                // values.add(values.get(0));
125

  
126 117
                int subtype = editingProviderServices.getSubType(featureStore);
127
                Spline spline =
128
                    editingProviderServices.createSpline(values, subtype);
129 118

  
130
                spline.addVertex(values.get(0));
131

  
132
                Surface surface = geometryManager.createPolygon(subtype);
133
                for (int i = 0; i < spline.getNumVertices(); i++) {
134
                    surface.addVertex(spline.getVertex(i));
119
                FilledSpline filledSpline = (FilledSpline) geometryManager.create(Geometry.TYPES.FILLEDSPLINE, subtype);
120
                for (int i = 0; i < values.size(); i++) {
121
                    filledSpline.addVertex(values.get(i));
135 122
                }
123
                filledSpline.addVertex(values.get(0));
136 124

  
137
                GeometryType geomType =
138
                    editingProviderServices.getGeomType(featureStore);
125
                GeometryType geomType = editingProviderServices.getGeomType(featureStore);
139 126

  
140 127
                if (geomType.isTypeOf(MULTISURFACE)) {
128
                    MultiSurface multisurface;
129
                    multisurface =
130
                        GeometryLocator.getGeometryManager().createMultiSurface(
131
                            geomType.getSubType());
132
                    multisurface.addSurface((FilledSpline) filledSpline);
133
                    return multisurface;
141 134

  
142
                    MultiSurface multiSurface =
143
                        geometryManager.createMultiSurface(geomType
144
                            .getSubType());
145
                    multiSurface.addSurface(surface);
146
                    return multiSurface;
147

  
148 135
                } else {
149
                    return surface;
136
                    return filledSpline;
150 137
                }
151 138

  
152 139
            } catch (BaseException e) {

Also available in: Unified diff