svn-gvsig-desktop / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / operations / strategies / SelectedZoomVisitor.java @ 1085
History | View | Annotate | Download (1.48 KB)
1 |
package com.iver.cit.gvsig.fmap.operations.strategies; |
---|---|
2 |
|
3 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
4 |
import com.iver.cit.gvsig.fmap.layers.FBitSet; |
5 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
6 |
import com.iver.cit.gvsig.fmap.layers.layerOperations.Selectable; |
7 |
|
8 |
import java.awt.geom.Rectangle2D; |
9 |
|
10 |
|
11 |
/**
|
12 |
* Visitor de zoom a lo seleccionado.
|
13 |
*
|
14 |
* @author Vicente Caballero Navarro
|
15 |
*/
|
16 |
public class SelectedZoomVisitor implements FeatureVisitor { |
17 |
private Rectangle2D rectangle = null; |
18 |
private FBitSet bitset = null; |
19 |
|
20 |
/**
|
21 |
* Inicializa el visitor.
|
22 |
*
|
23 |
* @param layer Capa.
|
24 |
*
|
25 |
* @return True si se inicializa correctamente.
|
26 |
*/
|
27 |
public boolean start(FLayer layer) { |
28 |
if (layer instanceof Selectable) { |
29 |
bitset = ((Selectable) layer).getSelection(); |
30 |
|
31 |
return true; |
32 |
} |
33 |
|
34 |
return false; |
35 |
} |
36 |
|
37 |
/**
|
38 |
* Finaliza el visitor.
|
39 |
*
|
40 |
* @param layer Capa.
|
41 |
*/
|
42 |
public void stop(FLayer layer) { |
43 |
} |
44 |
|
45 |
/**
|
46 |
* @see com.iver.cit.gvsig.fmap.operations.strategies.FeatureVisitor#visit(com.iver.cit.gvsig.fmap.core.IGeometry,
|
47 |
* int)
|
48 |
*/
|
49 |
public void visit(IGeometry g, int index) throws VisitException { |
50 |
if (bitset.get(index)) {
|
51 |
if (rectangle == null) { |
52 |
rectangle = (Rectangle2D) g.getBounds2D().clone();
|
53 |
} else {
|
54 |
rectangle.add(g.getBounds2D()); |
55 |
} |
56 |
} |
57 |
} |
58 |
|
59 |
/**
|
60 |
* Devuelve el Extent de los shapes seleccionados, y si no hay ning?n shape
|
61 |
* seleccionado devuelve null.
|
62 |
*
|
63 |
* @return Extent de los shapes seleccionados.
|
64 |
*/
|
65 |
public Rectangle2D getSelectBound() { |
66 |
return rectangle;
|
67 |
} |
68 |
} |