Revision 86 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

View differences:

InternalPolygonEditingProvider.java
1 1
/*
2 2
 * Copyright 2014 DiSiD Technologies S.L.L. All rights reserved.
3
 * 
4
 * Project  : DiSiD org.gvsig.vectorediting.lib.prov.internalpolygon 
3
 *
4
 * Project  : DiSiD org.gvsig.vectorediting.lib.prov.internalpolygon
5 5
 * SVN Id   : $Id$
6 6
 */
7 7
package org.gvsig.vectorediting.lib.prov.internalpolygon;
......
17 17
import org.gvsig.fmap.dal.feature.FeatureSelection;
18 18
import org.gvsig.fmap.dal.feature.FeatureStore;
19 19
import org.gvsig.fmap.geom.Geometry;
20
import org.gvsig.fmap.geom.GeometryLocator;
21
import org.gvsig.fmap.geom.aggregate.MultiSurface;
20 22
import org.gvsig.fmap.geom.primitive.Point;
23
import org.gvsig.fmap.geom.primitive.Polygon;
24
import org.gvsig.fmap.geom.primitive.Ring;
21 25
import org.gvsig.tools.ToolsLocator;
22 26
import org.gvsig.tools.dispose.DisposableIterator;
23 27
import org.gvsig.tools.dynobject.DynObject;
......
37 41
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
38 42
import org.gvsig.vectorediting.lib.spi.EditingProviderServices;
39 43

  
44
import com.vividsolutions.jts.geom.util.GeometryMapper;
45

  
40 46
public class InternalPolygonEditingProvider extends AbstractEditingProvider
41 47
    implements EditingProvider {
42 48

  
......
119 125

  
120 126
        while (it.hasNext()) {
121 127
          Feature feature = (Feature) it.next();
122
          Geometry geom = (Geometry) feature.getDefaultGeometry()
123
              .cloneGeometry();
124
          Geometry newGeom = geom.difference(geometry);
128
          Geometry geom = (Geometry) feature.getDefaultGeometry().cloneGeometry();
129
          Geometry newGeom = geom.cloneGeometry();
130
          if (geometry instanceof MultiSurface){
131
        	  MultiSurface multiSurface = ((MultiSurface)geometry);
132
        	  for (int i = 0; i < multiSurface.getPrimitivesNumber(); i++) {
133
        		  newGeom = newGeom.difference(multiSurface.getSurfaceAt(i));
134
        	  }
135
        	  //FIXME: Sustituir el bucle anterior por la creaci?n de anillos interiores
136
//          Ring ring;
137
//          GeometryLocator.getGeometryManager().
138
//          Geometry newGeom = ((Polygon)geom).addInteriorRing(ring);
139
          }
125 140
          EditableFeature editableFeature = feature.getEditable();
126 141
          editableFeature.setDefaultGeometry(newGeom);
127 142
          editingProviderServices.updateFeatureInFeatureStore(editableFeature,

Also available in: Unified diff