Revision 10626 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/toolListeners/SelectImageListener.java
SelectImageListener.java | ||
---|---|---|
45 | 45 |
|
46 | 46 |
import javax.swing.JScrollBar; |
47 | 47 |
|
48 |
import com.hardcode.gdbms.driver.exceptions.ReadDriverException; |
|
48 | 49 |
import com.iver.andami.PluginServices; |
49 |
import com.iver.cit.gvsig.fmap.DriverException;
|
|
50 |
import com.iver.cit.gvsig.exceptions.expansionfile.ExpansionFileReadException;
|
|
50 | 51 |
import com.iver.cit.gvsig.fmap.MapControl; |
51 | 52 |
import com.iver.cit.gvsig.fmap.ViewPort; |
52 | 53 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
... | ... | |
58 | 59 |
|
59 | 60 |
|
60 | 61 |
/** |
61 |
* Extensi?n de la clase SelectImageListenerImple de FMap. Esta clase
|
|
62 |
* Extensi?n de la clase SelectImageListenerImple de FMap. Esta clase |
|
62 | 63 |
* permite capturar el evento de la selecci?n de un punto sobre la vista |
63 | 64 |
* . Controlara que capa de la pila que est? visible cae dentro del punto |
64 |
* seleccionado poniendo esta capa como activa. En caso de que haya varias
|
|
65 |
* capas visibles sobre ese punto, pondr? como activa la capa superior.
|
|
65 |
* seleccionado poniendo esta capa como activa. En caso de que haya varias |
|
66 |
* capas visibles sobre ese punto, pondr? como activa la capa superior. |
|
66 | 67 |
* |
67 | 68 |
* @author Nacho Brodin <brodin_ign@gva.es> |
68 | 69 |
*/ |
69 | 70 |
public class SelectImageListener extends SelectImageListenerImpl { |
70 |
|
|
71 |
|
|
71 | 72 |
FLyrRaster layer = null; |
72 | 73 |
Rectangle2D extentLayer = null; |
73 | 74 |
/** |
74 |
* Contructor
|
|
75 |
* Contructor |
|
75 | 76 |
* @param mapCtrl |
76 | 77 |
*/ |
77 | 78 |
public SelectImageListener(MapControl mapCtrl) { |
78 | 79 |
super(mapCtrl); |
79 | 80 |
} |
80 |
|
|
81 | 81 |
|
82 |
|
|
82 | 83 |
/* (non-Javadoc) |
83 | 84 |
* @see com.iver.cit.gvsig.fmap.tools.Listeners.PointListener#point(com.iver.cit.gvsig.fmap.tools.Events.PointEvent) |
84 | 85 |
*/ |
85 | 86 |
public void point(PointEvent event) { |
86 | 87 |
super.point(event); |
87 |
|
|
88 |
|
|
88 | 89 |
Point2D pointSelect = event.getPoint(); |
89 |
|
|
90 |
|
|
90 | 91 |
if (PluginServices.getMainFrame() != null) |
91 | 92 |
PluginServices.getMainFrame().enableControls(); |
92 |
|
|
93 |
|
|
93 | 94 |
ViewPort vp = mapCtrl.getMapContext().getViewPort(); |
94 |
|
|
95 |
|
|
95 | 96 |
wcPoint = vp.toMapPoint((int)pointSelect.getX(), (int)pointSelect.getY()); |
96 |
|
|
97 |
|
|
97 | 98 |
FLayers layers = mapCtrl.getMapContext().getLayers(); |
98 | 99 |
for(int i=0;i<layers.getLayersCount();i++) |
99 | 100 |
layers.getLayer(i).setActive(false); |
100 |
|
|
101 |
|
|
101 | 102 |
boolean firstLayer = false; |
102 | 103 |
|
103 | 104 |
for(int i=layers.getLayersCount()-1;i>=0;i--){ |
104 | 105 |
if (select(layers.getLayer(i),i)) break; |
105 |
}
|
|
106 |
} |
|
106 | 107 |
} |
107 |
|
|
108 |
|
|
108 | 109 |
private boolean select(FLayer layer,int pos){ |
109 | 110 |
if (layer instanceof FLayers){ |
110 | 111 |
FLayers laux=(FLayers)layer; |
... | ... | |
116 | 117 |
}else{ |
117 | 118 |
try{ |
118 | 119 |
extentLayer = layer.getFullExtent(); |
119 |
}catch(DriverException exc){ |
|
120 |
}catch(ReadDriverException exc){
|
|
120 | 121 |
exc.printStackTrace(); |
122 |
} catch (ExpansionFileReadException e) { |
|
123 |
e.printStackTrace(); |
|
121 | 124 |
} |
122 | 125 |
if( extentLayer.getMaxX() >= wcPoint.getX() && |
123 | 126 |
extentLayer.getMinX() <= wcPoint.getX() && |
... | ... | |
131 | 134 |
double widthPerEntry = verticalBar.getMaximum()/layer.getMapContext().getLayers().getLayersCount(); |
132 | 135 |
verticalBar.setValue((int)widthPerEntry*(layer.getMapContext().getLayers().getLayersCount()-pos-1)); |
133 | 136 |
return true; |
134 |
} |
|
135 | 137 |
} |
138 |
} |
|
136 | 139 |
return false; |
137 | 140 |
} |
138 | 141 |
} |
Also available in: Unified diff