Revision 1752

View differences:

org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/java/org/gvsig/raster/georeferencing/app/georeferencingclient/Georeferencing.java
38 38
import org.gvsig.fmap.dal.coverage.datastruct.GeoPointList;
39 39
import org.gvsig.fmap.geom.primitive.Envelope;
40 40
import org.gvsig.fmap.mapcontrol.MapControl;
41
import org.gvsig.gui.beans.incrementabletask.IIncrementable;
42
import org.gvsig.gui.beans.incrementabletask.IncrementableEvent;
43
import org.gvsig.gui.beans.incrementabletask.IncrementableListener;
44
import org.gvsig.gui.beans.incrementabletask.IncrementableTask;
41 45
import org.gvsig.i18n.Messages;
42 46
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ApplicationControlsListener;
43 47
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.GeoreferencingProcessActions;
......
75 79
 * 26/12/2007
76 80
 * @author Nacho Brodin (nachobrodin@gmail.com)
77 81
 */
78
public class Georeferencing  {
82
public class Georeferencing implements IIncrementable, IncrementableListener {
79 83
	public static final int               UNDEFINED                      = -1;
80 84
	
81 85
	//Tipo de georreferenciacion
......
114 118
	private ApplicationControlsListener   appControlsListener            = null;
115 119
	private PointListListener             pointListListener              = null;
116 120
	public static boolean                 enableTableEvent               = true;
121
	protected IncrementableTask           incrementableLauncherTask      = null;
122
	private int                           percentLauncher                = 0;
123
	
124
	/**
125
	 * Crea la ventana de IncrementableTask
126
	 */
127
	public IncrementableTask getIncrementableTask() {
128
		if (incrementableLauncherTask == null) {
129
			incrementableLauncherTask = new IncrementableTask(this);
130
			incrementableLauncherTask.addIncrementableListener(this);
131
		}
132
		return incrementableLauncherTask;
133
	}
117 134
		
118 135
	public void initialize() {
119 136
		fManager = GeoreferencingFrameworkLocator.getManager();
......
143 160
		fManager.showWindow(launcher.getComponent(), 400, 380, Messages.getText("georeferencing"));
144 161
	}
145 162
	
163
	/**
164
	 * Gets the Mapcontrol for the view selected by the user 
165
	 * @return
166
	 */
146 167
	public MapControl getMapCtrl() {
147 168
		if(mapCtrl == null) {
148 169
			IWindow[] windowList = PluginServices.getMDIManager().getAllWindows();
......
158 179
		return mapCtrl;
159 180
	}
160 181
	
182
	/**
183
	 * Gets the Mapcontrol for the first view found. This is useful without reference cartography.
184
	 * When the application ends and the layer is loaded, the layer generated will be loaded 
185
	 * in the first view found. 
186
	 * @return
187
	 */
188
	public MapControl getFirstMapCtrl() {
189
		if(mapCtrl == null) {
190
			IWindow[] windowList = PluginServices.getMDIManager().getAllWindows();
191
			for (int i = 0; i < windowList.length; i++) {
192
				if(windowList[i] instanceof IView) {
193
					mapCtrl = ((IView)windowList[i]).getMapControl();
194
				}
195
			}			
196
		}
197
		return mapCtrl;
198
	}
199
	
161 200
	public void endLauncherDialog(GeoreferencingOptionsDataModel dataModel) {
162 201
		this.dataModel = dataModel;
163 202
		if(dataModel.getType() == Georeferencing.WITH_MAP)
......
166 205
			initWindowsWithoutMap(dataModel);
167 206
		createAppControlsListener();
168 207
		createPointListListener();
208
		initCartography();
209
		/*getIncrementableTask().showWindow();
210
		getIncrementableTask().start();
211
		
212
		SwingUtilities.invokeLater(new Runnable() {
213
			public void run() {
214
				initCartography();
215
			}
216
		});*/
169 217
	}
170 218
	
171 219
	/**
......
230 278
		return zoomRaster;
231 279
	}
232 280
	
233
	/**
234
	 * Colocaci?n inicial de las ventanas del espacio de trabajo. Carga la configuraci?n
235
	 * de ventanas con cartograf?a de referencia.
236
	 */
237
	private void initWindowsWithoutMap(GeoreferencingOptionsDataModel dataModel) {
238
		//RasterDataStore store = dataModel.getDataStore();
239
		
240
		getDataModel().setType(WITHOUT_MAP);
241
		
242
		viewRaster = getViewRaster();
243
		zoomRaster = getZoomRaster();
244
		
245
		PagedTable pt = getTableWrapper().getTable();
246
		
247
		//Creamos el layout
248
		LayoutEnvironment layoutEnv = fManager.createLayoutEnvironment();
249
		layoutEnv.setTable((JPanel)pt.getComponent());
250
		layoutEnv.setViewRasterToGeoref(viewRaster.getComponent());
251
		layoutEnv.setViewZoomRasterToGeoref(zoomRaster.getComponent());
252
		layoutEnv.setControlBar(getGeorefControlPanel().getComponent());
253
		
254
		fManager.createLayout(layoutEnv);
255
		GeoreferencingView[] v = new GeoreferencingView[]{null, viewRaster, null, zoomRaster};
256
		IViewRequestManager[] rm = new IViewRequestManager[]{null, viewRasterRequestManager, null, zoomRasterRequestManager};
257
		syncViews = sManager.createSyncViews(v, rm, getGeorefControlPanel(), pt, listener);
258
	
259
		try {
260
			viewRaster.setCursorSize(zoomRaster.getCanvasWidth() / ZOOM_RATIO, zoomRaster.getCanvasHeight() / ZOOM_RATIO);
261
			viewRaster.setCursorPosition(viewRaster.getCanvasWidth() / 2, viewRaster.getCanvasHeight() / 2);
262
			
263
			//Inicializamos la vista de raster
264
			viewRasterRequestManager.initRequest(dataModel.getRasterExtent());
265
						
266
			//Inicializamos el zoom de raster
267
			Rectangle2D ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight());
268
			zoomRasterRequestManager.initRequest(dataModel.getRasterExtent());
269
			zoomRasterRequestManager.request(ext);
270
		
271
		} catch (InvalidRequestException e1) {
272
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
273
			fManager.closeAllWindows();
274
		}catch (Exception e1) {
275
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
276
			fManager.closeAllWindows();
277
		}
278
		
279
		buildNewPointList();
280
	}
281
	
282 281
	public TableWrapper getTableWrapper() {
283 282
		if(table == null) {
284 283
			table = new TableWrapper(
......
340 339
	 * Colocaci?n inicial de las ventanas del espacio de trabajo. Carga la configuraci?n
341 340
	 * de ventanas con cartograf?a de referencia.
342 341
	 */
342
	private void initWindowsWithoutMap(GeoreferencingOptionsDataModel dataModel) {
343
		//RasterDataStore store = dataModel.getDataStore();
344
		getDataModel().setType(WITHOUT_MAP);
345
		
346
		viewRaster = getViewRaster();
347
		zoomRaster = getZoomRaster();
348
		
349
		PagedTable pt = getTableWrapper().getTable();
350
		
351
		//Creamos el layout
352
		LayoutEnvironment layoutEnv = fManager.createLayoutEnvironment();
353
		layoutEnv.setTable((JPanel)pt.getComponent());
354
		layoutEnv.setViewRasterToGeoref(viewRaster.getComponent());
355
		layoutEnv.setViewZoomRasterToGeoref(zoomRaster.getComponent());
356
		layoutEnv.setControlBar(getGeorefControlPanel().getComponent());
357
		
358
		fManager.createLayout(layoutEnv);
359
		GeoreferencingView[] v = new GeoreferencingView[]{null, viewRaster, null, zoomRaster};
360
		IViewRequestManager[] rm = new IViewRequestManager[]{null, viewRasterRequestManager, null, zoomRasterRequestManager};
361
		syncViews = sManager.createSyncViews(v, rm, getGeorefControlPanel(), pt, listener);
362
	
363
		try {
364
			viewRaster.setCursorSize(zoomRaster.getCanvasWidth() / ZOOM_RATIO, zoomRaster.getCanvasHeight() / ZOOM_RATIO);
365
			viewRaster.setCursorPosition(viewRaster.getCanvasWidth() / 2, viewRaster.getCanvasHeight() / 2);
366
		} catch (Exception e1) {
367
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
368
			fManager.closeAllWindows();
369
		}
370
		
371
		buildNewPointList();
372
	}
373
	
374
	/**
375
	 * Colocaci?n inicial de las ventanas del espacio de trabajo. Carga la configuraci?n
376
	 * de ventanas con cartograf?a de referencia.
377
	 */
343 378
	private void initWindowsWithMap(GeoreferencingOptionsDataModel dataModel) {
344 379
		getDataModel().setType(WITH_MAP);
345 380

  
......
347 382
		zoomRaster = getZoomRaster();
348 383
		viewMap = getViewMap();
349 384
		zoomMap = getZoomMap();
350
		
351 385
		PagedTable pt = getTableWrapper().getTable();
352 386
		
353 387
		//Creamos el layout
......
375 409
			if(getMapCtrl().getMapContext().getLayers().getFullEnvelope() == null)
376 410
				GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null);
377 411
			
378
			//Inicializamos la vista de mapa
379
			Envelope e = getMapCtrl().getMapContext().getLayers().getFullEnvelope();
380
			Rectangle2D r = new Rectangle2D.Double(e.getMinimum(0), e.getMinimum(1), e.getLength(0), e.getLength(1));
381
			viewMapRequestManager.initRequest(r);
382
			
412
			processActions.setViewMapRequest(viewMapRequestManager);
413
		} catch (Exception e1) {
414
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
415
			fManager.closeAllWindows();
416
		}
417
		buildNewPointList();
418
	}
419
	
420
	/**
421
	 * Initializes views with the cartography
422
	 * @throws InvalidRequestException
423
	 */
424
	private void initCartography() {
425
		try {
426
			percentLauncher = 10;
427
			if(getDataModel().getType() == WITH_MAP) {
428
				//Inicializamos la vista de mapa
429
				Envelope e = getMapCtrl().getMapContext().getLayers().getFullEnvelope();
430
				Rectangle2D r = new Rectangle2D.Double(e.getMinimum(0), e.getMinimum(1), e.getLength(0), e.getLength(1));
431
				viewMapRequestManager.initRequest(r);
432

  
433
				percentLauncher = 25;
434
				//Inicializamos el zoom de mapa
435
				Rectangle2D ext = viewMap.getCursorAdjustedWorldCoordinates(zoomMap.getCanvasWidth(), zoomMap.getCanvasHeight());
436
				zoomMapRequestManager.initRequest(ext);
437
			}
438

  
439
			percentLauncher = 50;
383 440
			//Inicializamos la vista de raster
384 441
			viewRasterRequestManager.initRequest(dataModel.getRasterExtent());
385
			
386
			//Inicializamos el zoom de mapa
387
			Rectangle2D ext = viewMap.getCursorAdjustedWorldCoordinates(zoomMap.getCanvasWidth(), zoomMap.getCanvasHeight());
388
			zoomMapRequestManager.initRequest(ext);
389
			
442

  
443
			percentLauncher = 75;
390 444
			//Inicializamos el zoom de raster
391
			ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight());
445
			Rectangle2D ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight());
392 446
			zoomRasterRequestManager.initRequest(dataModel.getRasterExtent());
393 447
			zoomRasterRequestManager.request(ext);
394
			
395
			processActions.setViewMapRequest(viewMapRequestManager);
448

  
449
			percentLauncher = 100;
396 450
		} catch (InvalidRequestException e1) {
397
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
451
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
398 452
			fManager.closeAllWindows();
399
		}catch (Exception e1) {
400
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
401
			fManager.closeAllWindows();
402
		}
403
		
404
		buildNewPointList();
453
		} /*finally {
454
			getIncrementableTask().processFinalize();
455
		}*/
405 456
	}
406 457

  
407 458
	public ViewRasterRequestManager getZoomRasterRequestManager() {
......
430 481
	public GeoreferencingOptionsDataModel getDataModel() {
431 482
		return GeoreferencingSwingLocator.getSwingManager().getDataModel();
432 483
	}
484
	
485
	//***********************************************
486
	//Launcher process
487

  
488
	public void actionCanceled(IncrementableEvent e) {
433 489
		
490
	}
491

  
492
	public void actionResumed(IncrementableEvent e) {
493
		
494
	}
495

  
496
	public void actionSuspended(IncrementableEvent e) {
497
		
498
	}
499

  
500
	public String getLabel() {
501
		return Messages.getText("loading_georef_windows");
502
	}
503

  
504
	public String getLog() {
505
		return Messages.getText("loading_georef_windows");
506
	}
507

  
508
	public int getPercent() {
509
		return percentLauncher;
510
	}
511

  
512
	public String getTitle() {
513
		return Messages.getText("loading");
514
	}
515

  
516
	public boolean isCancelable() {
517
		return false;
518
	}
519

  
520
	public boolean isPausable() {
521
		return false;
522
	}
523
		
434 524
}
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/java/org/gvsig/raster/georeferencing/app/georeferencingclient/listener/ApplicationControlsListener.java
180 180
			//------------
181 181
			//Fin del Test
182 182
			if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bEndTest) {
183
				if(appMain != null && appMain.getProcessActions().getLastTestLayer() != null) {
184
					appMain.getProcessActions().removeTestRasterLayer();
183
				if(getDataModel().getType() == Georeferencing.WITH_MAP) {
184
					if(appMain != null && appMain.getProcessActions().getLastTestLayer() != null) {
185
						appMain.getProcessActions().removeTestRasterLayer();
186
					}
187
				} else {
188
					RasterToolsUtil.messageBoxInfo("action_disable_without_view", null);
185 189
				}
186 190
			}
187 191

  
......
238 242
			if(getDataModel().getType() == Georeferencing.WITH_MAP) {
239 243
				if(appMain.getProcessActions().getLastTestLayer() != null)
240 244
					appMain.getProcessActions().getLastTestLayer().setRemoveRasterFlag(false);
241

  
242
				if(	appMain.getProcessActions().getLastTestLayer() != null && 
243
					RasterToolsUtil.messageBoxYesOrNot("ask_load_view", null)) {
244
					FLayers lyrs = appMain.getMapCtrl().getMapContext().getLayers();
245
			}
246
			
247
			if(	appMain.getProcessActions().getLastTestLayer() != null && 
248
					RasterToolsUtil.messageBoxYesOrNot(
249
							Messages.getText("ask_load_view") 
250
							+ " " + 
251
							appMain.getProcessActions().getLastTestLayer().getURI(), null)) {
252
				FLayers lyrs = null;
253
				if(appMain.getMapCtrl() != null) {
254
					lyrs = appMain.getMapCtrl().getMapContext().getLayers();
245 255
					if(lyrs != null) {
246 256
						try {
247 257
							if(appMain.getProcessActions().getLastTestLayer() != null){
......
252 262
							//No hay raster para eliminar
253 263
						}
254 264
					}
265
				}
255 266

  
256
					//Cargar en la vista
257
					if(getDataModel().getAlgorithm() == GeoreferencingLibrary.AFFINE) {
258
						try {
259
							appMain.getProcessActions().addTestRasterLayer(
260
									getDataModel().getDataStore(), 
261
									getDataModel().getAlgorithm(), 
262
									getDataModel().getInterpolationMethod(), 
263
									getDataModel().getDegree(), 
264
									getDataModel().getOutFile(),
265
									getDataModel().getXCellSize(),
266
									getDataModel().getYCellSize(),
267
									tableWrapper.getGeoTransformDataResult());
268
						} catch (LoadLayerException e) {
269
							RasterToolsUtil.messageBoxError("error_loading_layer", null, e);
270
						}
267
				//Cargar en la vista
268
				if(getDataModel().getAlgorithm() == GeoreferencingLibrary.AFFINE) {
269
					try {
270
						appMain.getProcessActions().addTestRasterLayer(
271
								getDataModel().getDataStore(), 
272
								getDataModel().getAlgorithm(), 
273
								getDataModel().getInterpolationMethod(), 
274
								getDataModel().getDegree(), 
275
								getDataModel().getOutFile(),
276
								getDataModel().getXCellSize(),
277
								getDataModel().getYCellSize(),
278
								tableWrapper.getGeoTransformDataResult());
279
					} catch (LoadLayerException e) {
280
						RasterToolsUtil.messageBoxError("error_loading_layer", null, e);
271 281
					}
272
					if(getDataModel().getAlgorithm() == GeoreferencingLibrary.POLYNOMIAL) {
273
						if(appMain.getProcessActions().getLastTestLayer() != null && lyrs != null) {
282
				}
283
				if(getDataModel().getAlgorithm() == GeoreferencingLibrary.POLYNOMIAL) {
284
					if(appMain.getProcessActions().getLastTestLayer() != null) {
285
						if(appMain.getMapCtrl() != null)
274 286
							appMain.getMapCtrl().getMapContext().getLayers().addLayer(appMain.getProcessActions().getLastTestLayer());
275
						} else {
276
							RasterToolsUtil.messageBoxInfo("raster_not_created", null);
277
							return;
278
						}
287
						else
288
							appMain.getFirstMapCtrl().getMapContext().getLayers().addLayer(appMain.getProcessActions().getLastTestLayer());
289
					} else {
290
						RasterToolsUtil.messageBoxInfo("raster_not_created", null);
291
						return;
279 292
					}
280
				} else {
281
					appMain.getProcessActions().removeTestRasterLayer();
282 293
				}
294
			} else {
295
				appMain.getProcessActions().removeTestRasterLayer();
283 296
			}
284 297

  
298

  
285 299
			if (saveTransform) {
286 300
				// Salvar transformaci?n
287 301
				if (appMain.getProcessActions().getLastTestLayer() == null) {
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/java/org/gvsig/raster/georeferencing/app/georeferencingclient/listener/GeoreferencingProcessActions.java
182 182
	 * vista con cartograf?a de referencia si esta existe.
183 183
	 */
184 184
	public void end(Object param) {
185
		if(viewMapRequestManager != null) {
186
			try {
187
				String f = RasterLocator.getManager().getFileUtils().getLastPart(fileName, File.separator);
188
				FLyrRaster lyr = DefaultFLyrRaster.createLayer(f, new File(fileName));
185
		try {
186
			String f = RasterLocator.getManager().getFileUtils().getLastPart(fileName, File.separator);
187
			FLyrRaster lyr = DefaultFLyrRaster.createLayer(f, new File(fileName));
188
			lastTestLyr = lyr;
189
			if(viewMapRequestManager != null)
189 190
				viewMapRequestManager.addTestRasterLayer(lyr);
190
				lastTestLyr = lyr;
191
			} catch (InvalidRequestException e) {
192
				GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e);
193
			} catch (LoadLayerException e) {
194
				GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e);
195
			}
191
		} catch (InvalidRequestException e) {
192
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e);
193
		} catch (LoadLayerException e) {
194
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e);
196 195
		}
197 196
	}
198 197

  
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/resources/text.properties
17 17
apply=Aplicar
18 18
archivo=Archivo
19 19
ask_end_georef=\u00bfDes\u00e9a finalizar la aplicaci\u00f3n de georreferenciaci\u00f3n?
20
ask_load_view=\u00bfDes\u00e9a cargar el raster resultante en la vista? 
20
ask_load_view=\u00bfDes\u00e9a cargar el resultado en la vista? <br>
21 21
ask_save_transformation=\u00bfDes\u00e9a salvar la transformaci\u00f3n resultante\n como predeterminada para el raster?
22 22
aviso_salir_salvando=Se han producido cambios en la georreferenciaci\u00f3n de la imagen. \u00bfDesea salvarlos y sobreescribir la georrefenciaci\u00f3n del fichero?
23 23
aviso_write_transform=Se va a sobreescribir la georreferenciaci\u00f3n actual del fichero.\u00bfDesea continuar?
......
270 270
worldy=Y terreno
271 271
imagex=X imagen
272 272
imagey=Y imagen
273
drag_point=Arrastrar punto
273
drag_point=Arrastrar punto
274
action_disable_without_view=Acci?n deshabilitada sin vista de referencia
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/src/main/resources/text_en.properties
16 16
apply=Apply
17 17
archivo=File
18 18
ask_end_georef=Do you want to close georeferencing aplication?
19
ask_load_view=Would you like to load georeferenced layer in the view? 
19
ask_load_view=Would you like to load the result in the view? <br>
20 20
ask_save_transformation=Would you like to save the new transformation\n as default for this raster?
21 21
aviso_salir_salvando=There is changes in georeferencing data. Would you like to save and overwrite raster layer's georeferencing data?
22 22
aviso_write_transform=The raster layer georeferencing is going to be changed. Would you like to go on?
......
245 245
worldy=World Y
246 246
imagex=Image X
247 247
imagey=Image Y
248
drag_point=Drag point
248
drag_point=Drag point
249
action_disable_without_view=Action disable without reference view
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.lib/org.gvsig.raster.georeferencing.lib.impl/src/main/java/org/gvsig/raster/georeferencing/lib/impl/GeoreferencingProcess.java
171 171
		if(xCellSize >= 0 && yCellSize >= 0) {
172 172
			w = (int)((xmax - xmin) / xCellSize);
173 173
			h = (int)((ymax - ymin) / yCellSize);
174
		} else {
174
		} 
175 175
			
176
		}
177
			
178 176
		int dataType = store.getDataType()[0];
179 177
		
180
		Buffer bufResult = RasterLocator.getManager().createBuffer(
181
				dataType, 
182
				w, 
183
				h, 
184
				store.getBandCount(), 
185
				true);
178
		Buffer bufResult = RasterLocator.getManager().createBuffer(dataType, w, h, store.getBandCount(), true);
186 179
		
187 180
		NoData nd = RasterLocator.getManager().getDataStructFactory().createDefaultNoData(
188 181
				store.getBandCount(), dataType);
......
195 188
		for(int row = 0; row < bufResult.getHeight(); row++) {
196 189
			for(int col = 0; col < bufResult.getWidth(); col++) {
197 190
				coord = transform.getCoordPixel(col * xCellSize + xmin, ymax - row * yCellSize);
198
//				if(coord[0] < 0)
199
//					coord[0] = 0;
200
//				if(coord[1] < 0)
201
//					coord[1] = 0;
202
//				if(coord[0] > bufInput.getWidth() - 1)
203
//					coord[0] = bufInput.getWidth() - 1;
204
//				if(coord[1] > bufInput.getHeight() - 1)
205
//					coord[1] = bufInput.getHeight() - 1;
206
				
207 191
				for (int iBand = 0; iBand < store.getBandCount(); iBand++) {
208 192
					if( (coord[0] < 0) || (coord[1] < 0) || 
209 193
						(coord[0] > bufInput.getWidth() - 1) || 
......
254 238
		return map;
255 239
	}
256 240

  
241
	/**
242
	 * Saves the result in a file
243
	 * @param sFilename
244
	 * @param buf
245
	 * @param xcellsize
246
	 * @param ycellsize
247
	 * @param minX
248
	 * @param maxY
249
	 * @return
250
	 */
257 251
	public boolean export(final String sFilename, Buffer buf, double xcellsize, double ycellsize, double minX, double maxY) {
258 252

  
259 253
        try {
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/option/CellSizeDialog.java
3 3
import java.awt.Color;
4 4
import java.awt.GridBagConstraints;
5 5
import java.awt.GridBagLayout;
6
import java.beans.PropertyChangeEvent;
7
import java.beans.PropertyChangeListener;
6 8
import java.util.EventObject;
7 9
import java.util.HashMap;
8 10

  
9
import javax.swing.JButton;
10 11
import javax.swing.JLabel;
11 12
import javax.swing.JPanel;
12 13

  
......
26 27
/**
27 28
 * @author Nacho Brodin (nachobrodin@gmail.com)
28 29
 */
29
public class CellSizeDialog extends AbstractButtonsPanel implements DataInputContainerListener {
30
public class CellSizeDialog extends AbstractButtonsPanel implements DataInputContainerListener, PropertyChangeListener {
30 31
	private static final long              serialVersionUID   = 1L;
31 32
	private CellSizeOptionsPanel           cellSizePanel      = null;
32
	private JButton                        buttonUpdate       = null;
33 33
	private JPanel                         panel              = null;
34 34
	private JLabel                         labelText          = null;
35 35
	private JLabel                         xsizeText          = null;
......
74 74
	public CellSizeOptionsPanel getCellSizePanel() {
75 75
		if(cellSizePanel == null) {
76 76
			cellSizePanel = new CellSizeOptionsPanel();
77
			cellSizePanel.getXCellSizeTextField().addValueChangedListener(this);
78
			cellSizePanel.getYCellSizeTextField().addValueChangedListener(this);
77
			cellSizePanel.getXCellSizeTextField().setListener(this);
78
			cellSizePanel.getYCellSizeTextField().setListener(this);
79 79
		}
80 80
		return cellSizePanel;
81 81
	}
......
101 101
		return panel;
102 102
	}
103 103

  
104

  
105
	public JButton getButtonUpdate() {
106
		if(buttonUpdate == null)
107
			buttonUpdate = new JButton(Messages.getText("calcular"));
108
		return buttonUpdate;
109
	}
110

  
111 104
	public void actionValueChanged(EventObject e) {
112 105
		calculateTransformation();
113 106
	}
114 107
	
108
	public void propertyChange(PropertyChangeEvent evt) {
109
		if(evt.getPropertyName().equals("value")) 
110
			calculateTransformation();
111
	}
112
	
115 113
	@SuppressWarnings("unchecked")
116 114
	private void calculateTransformation() {
117 115
		if(dataModel == null)
......
176 174
			ysizeText.setText("Y: ? px");
177 175
		}
178 176
	}
177

  
179 178
}
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/option/CellSizeOptionsPanel.java
24 24
import java.awt.GridBagConstraints;
25 25
import java.awt.GridBagLayout;
26 26
import java.awt.Insets;
27
import java.beans.PropertyChangeEvent;
28
import java.beans.PropertyChangeListener;
29
import java.text.DecimalFormat;
27 30

  
31
import javax.swing.JFormattedTextField;
32
import javax.swing.JLabel;
28 33
import javax.swing.JPanel;
29 34

  
30
import org.gvsig.gui.beans.datainput.DataInputContainer;
31 35
import org.gvsig.i18n.Messages;
32 36

  
33 37
/**
......
39 43
public class CellSizeOptionsPanel extends JPanel {
40 44
	private static final long     serialVersionUID    = 1L;
41 45
	
42
	private DataInputContainer    xCellSize           = null;
43
	private DataInputContainer    yCellSize           = null;
46
	private CellSizeContainer      xCellSize           = null;
47
	private CellSizeContainer      yCellSize           = null;
48
	
49
	public class CellSizeContainer extends JPanel implements PropertyChangeListener {
50
		private static final long      serialVersionUID = 1L;
51
		private JFormattedTextField    box;
52
		private PropertyChangeListener listener            = null;
44 53
		
54
		public CellSizeContainer(String txt) {
55
			box = new JFormattedTextField(new DecimalFormat("########.########"));
56
			box.setValue(0.0);
57
			box.addPropertyChangeListener("value", this);
58
			setLayout(new GridBagLayout());
59
			GridBagConstraints gridBagConstraints = new GridBagConstraints();
60
			gridBagConstraints.insets = new Insets(0, 0, 0, 0);
61
			add(new JLabel(txt), gridBagConstraints);
62

  
63
			gridBagConstraints = new GridBagConstraints();
64
			gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
65
			gridBagConstraints.weightx = 1.0;
66
			add(box, gridBagConstraints);
67
		}
68
		
69
		public String getValue() {
70
			double n = ((Number) box.getValue()).doubleValue();
71
			return Double.toString(n);
72
		}
73
		
74
		public void setValue(String value) {
75
			box.setValue(new Double(value));
76
		}
77

  
78
		public void setListener(PropertyChangeListener listener) {
79
			this.listener = listener;
80
		}
81
		
82
		public void propertyChange(PropertyChangeEvent evt) {
83
			listener.propertyChange(evt);
84
		}
85
	}
86
		
45 87
	/**
46 88
	 * Constructor. Asigna la lista de nombres de vistas para el selector. 
47 89
	 * @param viewList
......
74 116
	 * Obtiene el control para selecci?n de tama?o de pixel en X
75 117
	 * @return DataInputContainer
76 118
	 */
77
	public DataInputContainer getXCellSizeTextField() {
119
	public CellSizeContainer getXCellSizeTextField() {
78 120
		if(xCellSize == null) {
79
			xCellSize = new DataInputContainer(8);
80
			xCellSize.setLabelText("X ");
121
			xCellSize = new CellSizeContainer("X: ");
81 122
		}
82 123
		return xCellSize;
83 124
	}
......
86 127
	 * Obtiene el control para selecci?n de tama?o de pixel en Y
87 128
	 * @return DataInputContainer
88 129
	 */
89
	public DataInputContainer getYCellSizeTextField() {
130
	public CellSizeContainer getYCellSizeTextField() {
90 131
		if(yCellSize == null) {
91
			yCellSize = new DataInputContainer(8);
92
			yCellSize.setLabelText("Y ");
132
			yCellSize = new CellSizeContainer("Y: ");
93 133
		}
94 134
		return yCellSize;
95 135
	}
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.impl/src/main/java/org/gvsig/raster/georeferencing/swing/impl/view/synchronize/SynchronizationViewImpl.java
288 288
		double xRaster = gp.getPixelPoint().getX();
289 289
		double yRaster = gp.getPixelPoint().getY();
290 290

  
291
		if(viewRaster != null && viewMap instanceof ViewPanelImpl) 
291
		if(viewRaster != null && viewRaster instanceof ViewPanelImpl) 
292 292
			((ViewPanelImpl)viewRaster).setCenter(new Point2D.Double(xRaster, yRaster));
293 293
		if(zoomRaster != null) 
294 294
			((BaseViewPanel)zoomRaster).getControl().setCenter(new Point2D.Double(xRaster, yRaster));

Also available in: Unified diff