Revision 1494

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.autopolygon/src/main/java/org/gvsig/vectorediting/lib/prov/autopolygon/AutopolygonEditingProvider.java
1
package org.gvsig.vectorediting.lib.prov.autopolygon;
2 1
/**
3 2
 * gvSIG. Desktop Geographic Information System.
4 3
 *
......
23 22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
24 23
 */
25 24

  
25
package org.gvsig.vectorediting.lib.prov.autopolygon;
26 26

  
27 27
import java.util.ArrayList;
28
import java.util.HashMap;
29 28
import java.util.List;
30
import java.util.Map;
31 29

  
32 30
import org.cresques.cts.IProjection;
33 31

  
34 32
import org.gvsig.fmap.dal.exception.DataException;
35
import org.gvsig.fmap.dal.feature.EditableFeature;
36 33
import org.gvsig.fmap.dal.feature.Feature;
37 34
import org.gvsig.fmap.dal.feature.FeatureQuery;
38
import org.gvsig.fmap.dal.feature.FeatureSelection;
39 35
import org.gvsig.fmap.dal.feature.FeatureSet;
40 36
import org.gvsig.fmap.dal.feature.FeatureStore;
41 37
import org.gvsig.fmap.dal.feature.FeatureType;
42 38
import org.gvsig.fmap.geom.Geometry;
43 39
import org.gvsig.fmap.geom.GeometryLocator;
44
import org.gvsig.fmap.geom.GeometryManager;
45
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
46
import org.gvsig.fmap.geom.Geometry.TYPES;
47 40
import org.gvsig.fmap.geom.aggregate.MultiSurface;
48
import org.gvsig.fmap.geom.exception.CreateGeometryException;
49
import org.gvsig.fmap.geom.primitive.Circle;
50
import org.gvsig.fmap.geom.primitive.Ellipse;
51 41
import org.gvsig.fmap.geom.primitive.Point;
52 42
import org.gvsig.fmap.geom.primitive.Surface;
53 43
import org.gvsig.fmap.geom.type.GeometryType;
54
import org.gvsig.fmap.mapcontext.layers.vectorial.IntersectsGeometryEvaluator;
44
import org.gvsig.fmap.mapcontext.layers.vectorial.SpatialEvaluatorsFactory;
55 45
import org.gvsig.tools.dispose.DisposableIterator;
56 46
import org.gvsig.tools.dynobject.DynObject;
57
import org.gvsig.tools.exception.BaseException;
47
import org.gvsig.tools.evaluator.Evaluator;
58 48
import org.gvsig.tools.service.spi.ProviderServices;
59
import org.gvsig.tools.visitor.Visitor;
60 49
import org.gvsig.vectorediting.lib.api.DrawingStatus;
61 50
import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
62 51
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
......
71 60
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
72 61
import org.gvsig.vectorediting.lib.spi.EditingProviderServices;
73 62

  
63
@SuppressWarnings("UseSpecificCatch")
74 64
public class AutopolygonEditingProvider extends AbstractEditingProvider
75 65
    implements EditingProvider {
76 66

  
77
    private EditingServiceParameter geometryParameter;
67
    private final EditingServiceParameter geometryParameter;
78 68

  
79
    private FeatureStore featureStore;
69
    private final FeatureStore featureStore;
80 70

  
81 71
    private Geometry geometryValue;
82 72

  
......
110 100
    }
111 101

  
112 102
    public List<EditingServiceParameter> getParameters() {
113
        List<EditingServiceParameter> list =
114
            new ArrayList<EditingServiceParameter>();
103
        List<EditingServiceParameter> list = new ArrayList<>();
115 104
        list.add(geometryParameter);
116 105
        return list;
117 106
    }
......
125 114
        Object value) throws InvalidEntryException {
126 115

  
127 116
        if (param == geometryParameter) {
128
            if (value instanceof Geometry && value != null) {
117
            if (value instanceof Geometry ) {
129 118
                Geometry geometry = (Geometry)value;
130 119
                GeometryType geometryType = geometry.getGeometryType();
131 120
                if (geometryType.isTypeOf(Geometry.TYPES.MULTISURFACE) ||
......
151 140
            (EditingProviderServices) getProviderServices();
152 141

  
153 142
        Geometry geometry = geometryValue.cloneGeometry();
154
        FeatureQuery query = null;
143
        FeatureQuery query;
155 144
        try {
156 145
            query = queryByGeometry(geometry);
157 146
            if (query != null) {
......
178 167
            }
179 168

  
180 169
        } catch (Exception e) {
181
            new FinishServiceException(e);
170
            throw new FinishServiceException(e);
182 171
        }
183 172
        return geometry;
184 173
    }
......
198 187
        featureQuery.setFeatureType(featureType);
199 188

  
200 189
        IProjection query_proj = featureType.getDefaultSRS();
201
        IntersectsGeometryEvaluator iee =
202
            new IntersectsGeometryEvaluator(geometry, query_proj,
203
                featureType, geomName);
190
        Evaluator iee = SpatialEvaluatorsFactory.getInstance().intersects(
191
            geometry, 
192
            query_proj, 
193
            featureStore
194
        );
204 195
        featureQuery.setFilter(iee);
205 196
        featureQuery.setAttributeNames(null);
206 197
        return featureQuery;

Also available in: Unified diff