Revision 27497

View differences:

trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/geolocation/listener/GeoLocationPanelListener.java
40 40
import org.gvsig.raster.util.ExtendedFileFilter;
41 41
import org.gvsig.raster.util.Historical;
42 42
import org.gvsig.raster.util.RasterToolsUtil;
43
import org.gvsig.rastertools.geolocation.behavior.GeoRasterBehavior;
44 43
import org.gvsig.rastertools.geolocation.ui.GeoLocationDialog;
45 44
import org.gvsig.rastertools.geolocation.ui.GeoLocationOpeningRasterPanel;
46 45
import org.gvsig.rastertools.geolocation.ui.GeoLocationPanel;
......
50 49
import com.iver.cit.gvsig.addlayer.fileopen.FileOpenWizard;
51 50
import com.iver.cit.gvsig.fmap.MapControl;
52 51
import com.iver.cit.gvsig.fmap.ViewPort;
53
import com.iver.cit.gvsig.fmap.tools.Behavior.Behavior;
54
import com.iver.cit.gvsig.fmap.tools.Behavior.MouseMovementBehavior;
55 52
import com.iver.cit.gvsig.project.documents.view.gui.BaseView;
56
import com.iver.cit.gvsig.project.documents.view.toolListeners.StatusBarListener;
57 53

  
58 54
/**
59 55
 * Listener para el panel de geolocalizaci?n.
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/geolocation/GeoLocationTocMenuEntry.java
37 37
import com.iver.cit.gvsig.fmap.MapControl;
38 38
import com.iver.cit.gvsig.fmap.layers.FLayer;
39 39
import com.iver.cit.gvsig.fmap.layers.FLayers;
40
import com.iver.cit.gvsig.fmap.tools.CompoundBehavior;
40 41
import com.iver.cit.gvsig.fmap.tools.Behavior.Behavior;
41 42
import com.iver.cit.gvsig.fmap.tools.Behavior.MouseMovementBehavior;
42 43
import com.iver.cit.gvsig.project.documents.view.gui.BaseView;
43
import com.iver.cit.gvsig.project.documents.view.gui.IView;
44 44
import com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction;
45 45
import com.iver.cit.gvsig.project.documents.view.toc.ITocItem;
46 46
import com.iver.cit.gvsig.project.documents.view.toolListeners.StatusBarListener;
......
130 130
	 * (non-Javadoc)
131 131
	 * @see com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction#execute(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[])
132 132
	 */
133
	public void execute(ITocItem item, FLayer[] selectedItems) {		
134
		boolean isOpen = false;
133
	public void execute(ITocItem item, FLayer[] selectedItems) {
134
		if (selectedItems == null || selectedItems.length != 1 || !(selectedItems[0] instanceof FLyrRasterSE)) {
135
			RasterToolsUtil.messageBoxError(PluginServices.getText(this,"layers_not_selected"), null);
136
			return;
137
		}
135 138
		
136
		BaseView theView = (BaseView) PluginServices.getMDIManager().getActiveWindow();
137
		MapControl mapCtrl = theView.getMapControl();
138

  
139
		// Listener de eventos de movimiento que pone las coordenadas del rat?n en
140
		// la barra de estado
141
		StatusBarListener sbl = new StatusBarListener(mapCtrl);
139
		BaseView theView = null;
140
		GeoLocationDialog dialog = null;
142 141
		
143
		//Comprobamos si no hay capas activas. En este caso no lanzamos la ventana ni activamos la tool
144 142
		IWindow[] win = PluginServices.getMDIManager().getAllWindows();
145 143
		for (int i = 0; i < win.length; i++) {
146
			if (win[i] instanceof IView) {
147
				FLayers lyrs = ((IView) win[i]).getMapControl().getMapContext().getLayers();
148
				FLayer[] actives = lyrs.getActives();
149
				if (actives == null || actives.length == 0)
150
					return;
144
			if (win[i] instanceof BaseView) {
145
				FLayers lyrs = ((BaseView) win[i]).getMapControl().getMapContext().getLayers();
146
				for (int j = 0; j < lyrs.getLayersCount(); j++) 
147
					if(lyrs.getLayer(j).equals(selectedItems[0])) 
148
						theView = (BaseView)win[i];
151 149
			}
152 150
			if (win[i] instanceof GeoLocationDialog)
153
				isOpen = true;
151
				RasterToolsUtil.closeWindow(win[i]);
154 152
		}
155 153
		
156
		if (selectedItems == null || selectedItems.length != 1 || !(selectedItems[0] instanceof FLyrRasterSE))
154
		if(theView == null) {
155
			RasterToolsUtil.messageBoxError(PluginServices.getText(this,"view_not_found"), null);
157 156
			return;
157
		}
158 158
		
159
		MapControl mapCtrl = theView.getMapControl();
160
		
161
		// Listener de eventos de movimiento que pone las coordenadas del rat?n en
162
		// la barra de estado
163
		StatusBarListener sbl = new StatusBarListener(mapCtrl);
164
		
159 165
		FLyrRasterSE lyr = (FLyrRasterSE)selectedItems[0];
160
		GeoLocationDialog gld = new GeoLocationDialog(lyr, mapCtrl.getViewPort(), theView);
161
		if(!isOpen) {
162
			Point posit = RasterToolsUtil.iwindowPosition((int)gld.getSizeWindow().getWidth(), (int)gld.getSizeWindow().getHeight());
163
			gld.setPosition((int)posit.getX(), (int)posit.getY());
164
			RasterToolsUtil.addWindow(gld);
165
		}
166
		dialog = new GeoLocationDialog(lyr, mapCtrl.getViewPort(), theView);
167
		Point posit = RasterToolsUtil.iwindowPosition((int)dialog.getSizeWindow().getWidth(), (int)dialog.getSizeWindow().getHeight());
168
		dialog.setPosition((int)posit.getX(), (int)posit.getY());
169
		RasterToolsUtil.addWindow(dialog);
166 170
		
167
		gld.init(mapCtrl);
168
		loadGeoPanListener(mapCtrl, sbl, gld, lyr);
171
		dialog.init(mapCtrl);
172
		loadGeoPanListener(mapCtrl, sbl, dialog, lyr);
169 173
		mapCtrl.setTool("geoPan");
170 174
	}
171 175

  
......
177 181
			GeorefPanListener pl = new GeorefPanListener(mapCtrl);
178 182
			mb = new GeoRasterBehavior(pl, gld, lyr);
179 183
			mapCtrl.addMapTool("geoPan", new Behavior[]{mb, new MouseMovementBehavior(sbl)});
184
		} else {
185
			Behavior b = mapCtrl.getMapTool("geoPan");
186
			if(	b instanceof CompoundBehavior &&
187
				((CompoundBehavior)b).getBehavior(0) instanceof GeoRasterBehavior) {
188
				GeoRasterBehavior beh = (GeoRasterBehavior)((CompoundBehavior)b).getBehavior(0);
189
				beh.setLayer(lyr);
190
				beh.setITransformIO(gld);	
191
			}				
180 192
		}
181
		
182
		if(mb != null) {
183
			mb.setLayer(lyr);
184
			mb.setITransformIO(gld);
185
		}
186 193
	}
187 194
	
188 195
	/*
trunk/extensions/extRasterTools-SE/config/text.properties
251 251
LadoVentana=Lado de la ventana
252 252
layer=Capa
253 253
layer_not_loaded=No hay cargada una capa valida. Por favor, seleccione una capa raster.
254
layer_not_selected=No hay capas seleccionadas
254 255
layer_without_georref=La capa no tiene georreferenciaci\u00f3n.<BR> \u00bfDesea introducirla manualmente?
255 256
levels=Niveles
256 257
leyendo_raster=Leyendo datos raster de entrada. \u00a1Atenci\u00f3n\!. Esta operaci\u00f3n puede tardar varios minutos. Por favor, espere ...
......
491 492
vectinside=Nodata en todos los valores exteriores a las regiones
492 493
vector_generation=Generaci\u00f3n de vectores
493 494
vectorization=Vectorizaci\u00f3n
495
view_not_found=No se puede localizar la vista
494 496
vista_datasource=Extensi\u00f3n de la vista
495 497
vista_previa=Vista previa
496 498
width=Ancho
trunk/extensions/extRasterTools-SE/config/text_en.properties
251 251
LadoVentana=Window side
252 252
layer=Layer
253 253
layer_not_loaded=There isn't a valid layer. Select a raster layer, please
254
layer_not_selected=There is not a selected layer
254 255
layer_without_georref=This layer has not geographic information.<BR> Would you like to introduce it manually?
255 256
levels=Levels
256 257
leyendo_raster=Reading input data raster. \u00a1Warning\!. This operation could to take a few minutes. Wait a moment, please...
......
491 492
vectinside=Set nodata in all outside regions values
492 493
vector_generation=Vector generation
493 494
vectorization=Vectorization
495
view_not_found=The view can't be found
494 496
vista_datasource=View extension
495 497
vista_previa=Preview
496 498
width=Width

Also available in: Unified diff