Revision 38096
branches/v2_0_0_prep/extensions/extEditing/pom.xml | ||
---|---|---|
17 | 17 |
- Insert geometric elements (circle, rectangle, ellipse, etc.) |
18 | 18 |
- Copy / move / rotate / scale graphic elements.. |
19 | 19 |
- Vertex editing |
20 |
- Complex sellection based on different geometric criteria |
|
21 | 20 |
- Undo / redo |
22 | 21 |
- Command window |
23 | 22 |
- Snapping |
... | ... | |
84 | 83 |
<artifactId>org.gvsig.timesupport.lib.api</artifactId> |
85 | 84 |
<scope>compile</scope> |
86 | 85 |
</dependency> |
87 |
<!-- TODO: we shouldn't have the following implementation compile dependencies --> |
|
88 | 86 |
<dependency> |
89 | 87 |
<groupId>org.gvsig</groupId> |
90 | 88 |
<artifactId>org.gvsig.fmap.geometry</artifactId> |
91 |
<classifier>impl</classifier> |
|
92 |
<scope>compile</scope> |
|
93 |
</dependency> |
|
94 |
<dependency> |
|
95 |
<groupId>org.gvsig</groupId> |
|
96 |
<artifactId>org.gvsig.fmap.geometry</artifactId> |
|
97 | 89 |
<classifier>operation</classifier> |
98 | 90 |
<scope>compile</scope> |
99 | 91 |
</dependency> |
branches/v2_0_0_prep/extensions/extEditing/src/org/gvsig/editing/gui/cad/tools/EditVertexCADTool.java | ||
---|---|---|
46 | 46 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
47 | 47 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
48 | 48 |
import org.gvsig.fmap.geom.Geometry; |
49 |
import org.gvsig.fmap.geom.aggregate.impl.BaseMultiPrimitive;
|
|
49 |
import org.gvsig.fmap.geom.aggregate.MultiPrimitive; |
|
50 | 50 |
import org.gvsig.fmap.geom.handler.Handler; |
51 | 51 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
52 | 52 |
import org.gvsig.fmap.mapcontext.ViewPort; |
... | ... | |
234 | 234 |
} |
235 | 235 |
|
236 | 236 |
int dif = 1;// En el caso de ser pol?gono. |
237 |
if (ig instanceof BaseMultiPrimitive) {
|
|
237 |
if (ig instanceof MultiPrimitive) { |
|
238 | 238 |
dif = 2; |
239 | 239 |
} |
240 | 240 |
|
... | ... | |
261 | 261 |
|| s.equals(PluginServices.getText(this, "del"))) { |
262 | 262 |
if (handlers != null) { |
263 | 263 |
Geometry newGeometry = null; |
264 |
if (ig instanceof BaseMultiPrimitive) {
|
|
264 |
if (ig instanceof MultiPrimitive) { |
|
265 | 265 |
newGeometry = |
266 |
removeVertexGC((BaseMultiPrimitive) ig,
|
|
266 |
removeVertexGC((MultiPrimitive) ig, |
|
267 | 267 |
handlers[numSelect]); |
268 | 268 |
} else { |
269 | 269 |
newGeometry = |
... | ... | |
439 | 439 |
return ig; |
440 | 440 |
} |
441 | 441 |
|
442 |
private Geometry removeVertexGC(BaseMultiPrimitive gc, Handler handler) { |
|
443 |
Geometry[] geoms = gc.getGeometries(); |
|
442 |
private Geometry removeVertexGC(MultiPrimitive gc, Handler handler) { |
|
443 |
|
|
444 |
// Geometry[] geoms = gc.getGeometries(); // getPrimitives es de la implemetacion, no esta en el API |
|
445 |
Geometry[] geoms = new Geometry[gc.getPrimitivesNumber()]; |
|
446 |
for( int i=0; i<gc.getPrimitivesNumber(); i++) { |
|
447 |
geoms[i] = gc.getPrimitiveAt(i); |
|
448 |
} |
|
449 |
|
|
444 | 450 |
ArrayList geomsAux = new ArrayList(); |
445 | 451 |
int pos = -1; |
446 | 452 |
for (int i = 0; i < geoms.length; i++) { |
... | ... | |
600 | 606 |
return shp; |
601 | 607 |
} |
602 | 608 |
|
603 |
private Geometry addVertexGC(BaseMultiPrimitive gc, Point2D p,
|
|
609 |
private Geometry addVertexGC(MultiPrimitive gc, Point2D p, |
|
604 | 610 |
Rectangle2D rect) { |
605 |
Geometry[] geoms = gc.getGeometries(); |
|
611 |
// Geometry[] geoms = gc.getGeometries(); // getPrimitives es de la implemetacion, no esta en el API |
|
612 |
Geometry[] geoms = new Geometry[gc.getPrimitivesNumber()]; |
|
613 |
for( int i=0; i<gc.getPrimitivesNumber(); i++) { |
|
614 |
geoms[i] = gc.getPrimitiveAt(i); |
|
615 |
} |
|
616 |
|
|
606 | 617 |
int pos = -1; |
607 | 618 |
for (int i = 0; i < geoms.length; i++) { |
608 | 619 |
if (geoms[i].intersects(rect)) { |
... | ... | |
690 | 701 |
Geometry geom1 = |
691 | 702 |
(feat.getDefaultGeometry()).cloneGeometry(); |
692 | 703 |
Geometry geom = null; |
693 |
if (geom1 instanceof BaseMultiPrimitive) {
|
|
704 |
if (geom1 instanceof MultiPrimitive) { |
|
694 | 705 |
geom = |
695 |
addVertexGC((BaseMultiPrimitive) geom1,
|
|
706 |
addVertexGC((MultiPrimitive) geom1, |
|
696 | 707 |
posVertex, rect); |
697 | 708 |
} else { |
698 | 709 |
geom = addVertex(geom1, posVertex, rect); |
branches/v2_0_0_prep/extensions/extEditing/src/org/gvsig/editing/gui/cad/tools/ExploitCADTool.java | ||
---|---|---|
25 | 25 |
import java.awt.geom.PathIterator; |
26 | 26 |
import java.awt.geom.Point2D; |
27 | 27 |
|
28 |
import com.vividsolutions.jts.geom.GeometryCollection; |
|
29 |
|
|
30 | 28 |
import org.gvsig.andami.PluginServices; |
31 | 29 |
import org.gvsig.andami.messages.NotificationManager; |
32 | 30 |
import org.gvsig.editing.CADExtension; |
... | ... | |
42 | 40 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
43 | 41 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
44 | 42 |
import org.gvsig.fmap.geom.Geometry; |
45 |
import org.gvsig.fmap.geom.aggregate.impl.BaseMultiPrimitive;
|
|
43 |
import org.gvsig.fmap.geom.aggregate.MultiPrimitive; |
|
46 | 44 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
47 | 45 |
import org.gvsig.fmap.mapcontrol.MapControlDrawer; |
48 | 46 |
import org.gvsig.tools.dispose.DisposableIterator; |
49 | 47 |
|
48 |
//import com.vividsolutions.jts.geom.GeometryCollection; |
|
49 |
|
|
50 | 50 |
/** |
51 | 51 |
* Elimina la geometr?a compuesta y a?ade todas la geometr?as simples que la |
52 | 52 |
* componen, implementado para polil?neas y pol?gonos. |
... | ... | |
169 | 169 |
Feature feature = (Feature) iterator.next(); |
170 | 170 |
Geometry geom = (feature.getDefaultGeometry()).cloneGeometry(); |
171 | 171 |
featureStore.delete(feature); |
172 |
if (geom instanceof GeometryCollection) {
|
|
172 |
if (geom instanceof MultiPrimitive) {
|
|
173 | 173 |
exploitGeometryCollection(feature, newSelection); |
174 | 174 |
} else { |
175 | 175 |
if (geom.getType() == CURVE) { |
... | ... | |
196 | 196 |
private void exploitGeometryCollection(Feature feature, |
197 | 197 |
FeatureSelection selectedRowAux) { |
198 | 198 |
Geometry geom = (feature.getDefaultGeometry()).cloneGeometry(); |
199 |
BaseMultiPrimitive gc = (BaseMultiPrimitive) geom;
|
|
199 |
MultiPrimitive gc = (MultiPrimitive) geom;
|
|
200 | 200 |
int numGeoms = gc.getPrimitivesNumber(); |
201 | 201 |
FeatureStore featureStore; |
202 | 202 |
try { |
Also available in: Unified diff