Revision 1712

View differences:

org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.framework/org.gvsig.raster.georeferencing.framework.andami/src/main/java/org/gvsig/raster/georeferencing/framework/andami/GeoreferencingAndamiFrameworkManagerImpl.java
135 135
		mainPanel.add(env.getControlBar(), gbc);
136 136
		
137 137
		gbc.gridy = 2;
138
		JPanel p = fixPanelWithReference(env.getTable(), env.getViewZoomRasterToGeoref(), env.getViewZoomBaseCartography());
138
		JPanel p = fixPanelWithReference(env.getTable(), env.getViewZoomBaseCartography(), env.getViewZoomRasterToGeoref());
139 139
		mainPanel.add(p, gbc);
140 140
		
141 141
		MDIFrame mdi = (MDIFrame)PluginServices.getMainFrame();
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
34 34
import org.gvsig.app.project.documents.Document;
35 35
import org.gvsig.app.project.documents.view.ViewDocument;
36 36
import org.gvsig.app.project.documents.view.gui.IView;
37
import org.gvsig.fmap.dal.coverage.datastruct.GeoPoint;
38
import org.gvsig.fmap.dal.coverage.datastruct.GeoPointList;
37 39
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
38 40
import org.gvsig.fmap.geom.primitive.Envelope;
39 41
import org.gvsig.fmap.mapcontrol.MapControl;
......
41 43
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.CheckBoxColumnEditor;
42 44
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.CheckBoxColumnRenderer;
43 45
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.GCPModel;
46
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ApplicationControlsListener;
44 47
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.LauncherDialogListener;
45
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.TableDialogListener;
46 48
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ViewDialogListener;
49
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ViewMapRequestManager;
47 50
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ViewRasterRequestManager;
48 51
import org.gvsig.raster.georeferencing.framework.GeoreferencingFrameworkLocator;
49 52
import org.gvsig.raster.georeferencing.framework.GeoreferencingFrameworkManager;
......
58 61
import org.gvsig.raster.georeferencing.swing.impl.GeoreferencingSwingImplLibrary;
59 62
import org.gvsig.raster.georeferencing.swing.impl.tool.SelectPointTool;
60 63
import org.gvsig.raster.georeferencing.swing.view.GeoreferencingView;
64
import org.gvsig.raster.georeferencing.swing.view.IViewRequestManager;
61 65
import org.gvsig.raster.georeferencing.swing.view.SynchronizedViews;
62
import org.gvsig.raster.georeferencing.swing.view.ToolEvent;
63
import org.gvsig.raster.georeferencing.swing.view.ToolListener;
64
import org.gvsig.raster.georeferencing.swing.view.ViewEvent;
65 66
import org.gvsig.raster.swing.RasterSwingLocator;
66 67
import org.gvsig.raster.swing.RasterSwingManager;
67 68
import org.gvsig.raster.swing.pagedtable.ModelLoader;
......
79 80
 * 26/12/2007
80 81
 * @author Nacho Brodin (nachobrodin@gmail.com)
81 82
 */
82
public class Georeferencing implements ToolListener {
83
public class Georeferencing  {
83 84
	public static final int               UNDEFINED                      = -1;
84 85
	//Algoritmo
85 86
	public static final int               POLYNOMIAL                     = 0;
......
99 100
	private RasterDataStore               storeToGeoref                  = null;
100 101
	private String                        selectedView                   = null;
101 102
		
102
	private static final int              smallWindowsHeight             = 100;
103
	private static final double           smallWindowsWidthPercent       = 0.5;
104
	
105 103
	//Dialogos
106
	private GeoreferencingLauncher        initDialog                     = null;
104
	private GeoreferencingLauncher        launcher                       = null;
107 105
	private GeoreferencingView            viewRaster                     = null;
108 106
	private GeoreferencingView            viewMap                        = null;
109 107
	private GeoreferencingView            zoomMap                        = null;
110 108
	private GeoreferencingView            zoomRaster                     = null;
109
	
110
	private ViewRasterRequestManager      zoomRasterRequestManager       = null;  
111
	private ViewMapRequestManager         zoomMapRequestManager          = null;
111 112
		
112 113
	//Herramientas de selecci?n
113 114
	private SelectPointTool               viewRasterSelectPointTool      = null;
......
118 119
	private GeorefControlPanel            georefControlPanel             = null;
119 120

  
120 121
	private PagedTable                    table                          = null;
121
	private TableDialogListener           buttonsListener                = null;
122
	private GeoreferencingOptionsDataModel
123
	                                      optionsDataModel               = null;
122
	private ApplicationControlsListener   buttonsListener                = null;
123

  
124 124
	private MapControl                    mapCtrl                        = null;
125 125
	private GeoreferencingOptionsDataModel 
126 126
	                                      dataModel                      = null;
127
	private GeoPointList                  geoPointList                   = null;
128
	private SynchronizedViews             syncViews                      = null;
129
	private ViewDialogListener            listener                       = null;
130
	private GeoreferencingProcessActions  processActions                 = null;
127 131
	
128 132
	//private LayersPointManager            layersPointManager             = null;
129
	//private ViewsManager                  viewsManager                   = null;
133
	class GeoPointListImpl extends ArrayList<GeoPoint> implements GeoPointList {
134
		private static final long serialVersionUID = 1L;
135
	}
130 136
		
131 137
	public void initialize() {
132 138
		fManager = GeoreferencingFrameworkLocator.getManager();
133 139
		sManager = GeoreferencingSwingLocator.getSwingManager();
140
		listener = new ViewDialogListener(this);
141
		processActions = new GeoreferencingProcessActions();
134 142
		//getLayerPointManager();	
135 143
		//getViewsManager();
136 144
		launcher();
......
151 159
		}
152 160
		
153 161

  
154
		GeoreferencingLauncher launcher = sManager.createWindowLauncher(viewList, DEFAULT_DEGREE);
162
		launcher = sManager.createWindowLauncher(viewList, DEFAULT_DEGREE);
155 163
		LauncherDialogListener listener = new LauncherDialogListener(this, launcher);
156 164
		launcher.setButtonsListener(listener);
157 165
		fManager.showWindow(launcher.getComponent(), 400, 420, Messages.getText("georeferencing"));
......
226 234
	private void initWindowsWithoutMap(GeoreferencingOptionsDataModel dataModel) {
227 235
		RasterDataStore store = dataModel.getDataStore();
228 236
		
229
		getOptions().setType(WITHOUT_MAP);
237
		getOptionsDataModel().setType(WITHOUT_MAP);
230 238
		 				
231 239
		//Inicializaci?n de la ventana con la vista raster
232
		viewRaster = sManager.createView(true, false, true, this);
233
		ViewDialogListener listener = new ViewDialogListener(viewRaster, this);
240
		viewRaster = sManager.createView(true, false, true, listener);
234 241
		ViewRasterRequestManager viewRasterRequestManager = new ViewRasterRequestManager(viewRaster, store);
235 242
		viewRaster.setViewListener(listener);
236 243
		viewRaster.setRequestListener(viewRasterRequestManager);
237
		viewRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, this);
244
		viewRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
238 245
		
239 246
		//Inicializaci?n de la ventana del zoom de la vista raster
240 247
		zoomRaster = sManager.createZoom(true, false);
241
		ViewRasterRequestManager zoomRasterRequestManager = new ViewRasterRequestManager(zoomRaster, store);
248
		zoomRasterRequestManager = new ViewRasterRequestManager(zoomRaster, store);
242 249
		zoomRaster.setRequestListener(zoomRasterRequestManager);
243
		zoomRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, this);
250
		zoomRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
244 251
		
245
		georefControlPanel = sManager.createGeorefControlPanel();
252
		PagedTable pt = getTable();
246 253
		
247 254
		//Creamos el layout
255
		
248 256
		LayoutEnvironment layoutEnv = fManager.createLayoutEnvironment();
249
		layoutEnv.setTable((JPanel)getTable(false, dataModel).getComponent());
257
		layoutEnv.setTable((JPanel)pt.getComponent());
250 258
		layoutEnv.setViewRasterToGeoref(viewRaster.getComponent());
251 259
		layoutEnv.setViewZoomRasterToGeoref(zoomRaster.getComponent());
252
		layoutEnv.setControlBar(georefControlPanel.getComponent());
260
		layoutEnv.setControlBar(getGeorefControlPanel().getComponent());
253 261
		
254 262
		fManager.createLayout(layoutEnv);
255
		SynchronizedViews syncViews = sManager.createSyncViews(null, viewRaster, null, zoomRaster, table, this);
263
		GeoreferencingView[] v = new GeoreferencingView[]{null, viewRaster, null, zoomRaster};
264
		IViewRequestManager[] rm = new IViewRequestManager[]{null, viewRasterRequestManager, null, zoomRasterRequestManager};
265
		syncViews = sManager.createSyncViews(v, rm, getGeoPointList(), pt, listener);
256 266

  
257 267
//		
258 268
//		viewsManager.setViews(viewRaster, null, zoomRaster, null);
......
280 290
		}
281 291
	}
282 292
	
283
	private PagedTable getTable(boolean withMap, GeoreferencingOptionsDataModel dataModel) {
293
	public PagedTable getTable() {
284 294
		if(table == null) {
285 295
			RasterSwingManager manager = RasterSwingLocator.getSwingManager();
286 296
			String[] columnNames = {
......
314 324
	private void initWindowsWithMap(GeoreferencingOptionsDataModel dataModel) {
315 325
		RasterDataStore store = dataModel.getDataStore();
316 326
		
317
		getOptions().setType(WITH_MAP);
327
		getOptionsDataModel().setType(WITH_MAP);
318 328
		 				
319 329
		//Inicializaci?n de la ventana con la vista raster
320
		viewRaster = sManager.createView(true, false, true, this);
321
		ViewDialogListener listenerRaster = new ViewDialogListener(viewRaster, this);
330
		viewRaster = sManager.createView(true, false, true, listener);
322 331
		ViewRasterRequestManager viewRasterRequestManager = new ViewRasterRequestManager(viewRaster, store);
323
		viewRaster.setViewListener(listenerRaster);
332
		viewRaster.setViewListener(listener);
324 333
		viewRaster.setRequestListener(viewRasterRequestManager);
325
		viewRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, this);
334
		viewRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
326 335
		
327 336
		//Inicializaci?n de la ventana del zoom de la vista raster
328 337
		zoomRaster = sManager.createZoom(true, false);
329
		ViewRasterRequestManager zoomRasterRequestManager = new ViewRasterRequestManager(zoomRaster, store);
338
		zoomRasterRequestManager = new ViewRasterRequestManager(zoomRaster, store);
330 339
		zoomRaster.setRequestListener(zoomRasterRequestManager);
331
		zoomRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, this);
340
		zoomRaster.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
332 341
		
333 342
		//Inicializaci?n de la ventana con la vista del terreno
334
		viewMap = sManager.createView(true, false, false, this);
335
		ViewDialogListener listenerMap = new ViewDialogListener(viewMap, this);
336
		ViewRasterRequestManager viewMapRequestManager = new ViewRasterRequestManager(viewMap, store);
337
		viewMap.setViewListener(listenerMap);
343
		viewMap = sManager.createView(true, false, false, listener);
344
		ViewMapRequestManager viewMapRequestManager = new ViewMapRequestManager(viewMap, getMapCtrl());
345
		viewMap.setViewListener(listener);
338 346
		viewMap.setRequestListener(viewMapRequestManager);
339
		viewMap.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, this);
347
		viewMap.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
340 348
		
341 349
		//Inicializaci?n de la ventana del zoom de la vista del terreno
342 350
		zoomMap = sManager.createZoom(true, false);
343
		ViewRasterRequestManager zoomMapRequestManager = new ViewRasterRequestManager(zoomMap, store);
351
		zoomMapRequestManager = new ViewMapRequestManager(zoomMap, getMapCtrl());
344 352
		zoomMap.setRequestListener(zoomMapRequestManager);
345
		zoomMap.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, this);
353
		zoomMap.setTool(GeoreferencingSwingLibrary.SELECT_POINT_TOOL, listener);
346 354
		
347
		georefControlPanel = sManager.createGeorefControlPanel();
355
		PagedTable pt = getTable();
348 356
		
349 357
		//Creamos el layout
350 358
		LayoutEnvironment layoutEnv = fManager.createLayoutEnvironment();
351
		layoutEnv.setTable((JPanel)getTable(false, dataModel).getComponent());
359
		layoutEnv.setTable((JPanel)pt.getComponent());
352 360
		layoutEnv.setViewRasterToGeoref(viewRaster.getComponent());
353 361
		layoutEnv.setViewZoomRasterToGeoref(zoomRaster.getComponent());
354 362
		layoutEnv.setViewBaseCartography(viewMap.getComponent());
355 363
		layoutEnv.setViewZoomBaseCartography(zoomMap.getComponent());
356
		layoutEnv.setControlBar(georefControlPanel.getComponent());
364
		layoutEnv.setControlBar(getGeorefControlPanel().getComponent());
357 365
		
358 366
		fManager.createLayout(layoutEnv);
359
		SynchronizedViews syncViews = sManager.createSyncViews(viewMap, viewRaster, zoomMap, zoomRaster, table, this);
367
		GeoreferencingView[] v = new GeoreferencingView[]{viewMap, viewRaster, zoomMap, zoomRaster};
368
		IViewRequestManager[] rm = new IViewRequestManager[]{viewMapRequestManager, viewRasterRequestManager, zoomMapRequestManager, zoomRasterRequestManager};
369
		syncViews = sManager.createSyncViews(v, rm, getGeoPointList(), pt, listener);
360 370
		
361
		getOptions().setType(WITH_MAP);
371
		getOptionsDataModel().setType(WITH_MAP);
362 372
//		
363 373
//		viewsManager.setViews(viewRaster, viewMap, zoomRaster, zoomMap);
364 374
//		viewsManager.setRequestsManager(viewRasterRequestManager, viewMapRequestManager, zoomRasterRequestManager, zoomMapRequestManager);
......
393 403
//			layersPointManager.createGCPPIxelLayer(viewRaster, viewRasterRequestManager, zoomRasterRequestManager);
394 404
//			layersPointManager.createGCPMapLayer(viewMap, viewMapRequestManager, zoomMapRequestManager);
395 405
//			
406
			processActions.setViewMapRequest(viewMapRequestManager);
396 407
		} catch (InvalidRequestException e1) {
397 408
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
398 409
			fManager.closeAllWindows();
......
434 445
	 * Gets the georeferencing options data model
435 446
	 * @return
436 447
	 */
437
	public GeoreferencingOptionsDataModel getOptions() {
448
	public GeoreferencingOptionsDataModel getOptionsDataModel() {
438 449
		GeoreferencingSwingManager manager = GeoreferencingSwingLocator.getSwingManager();
439 450
		return manager.getDataModel();
440 451
		//options = manager.createWindowOptions(Georeferencing.DEFAULT_DEGREE, this);
441 452
	}
442
	
443
	/**
444
	 * Controla los eventos de finalizaci?n de la capa con el 
445
	 * cursor gr?fico que controla el ?rea de la miniimagen asociada y
446
	 * la terminaci?n de la operaci?n de mover punto
447
	 */
448
	public void endAction(ToolEvent ev) {
449 453
		
450
//		//-----------------
451
//		//Operaci?n de zoom
452
//		if(ev.getSource() instanceof ZoomCursorGraphicLayer) {
453
//			try {	
454
//				Rectangle2D ext = null;
455
//				if(viewRaster != null) {
456
//					ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight());
457
//					viewsManager.getZoomRasterRequestManager().request(ext);
458
//				}
459
//				if(viewMap != null) {
460
//					ext = viewMap.getCursorAdjustedWorldCoordinates(zoomMap.getCanvasWidth(), zoomMap.getCanvasHeight());
461
//					viewsManager.getZoomMapRequestManager().request(ext);
462
//				}
463
//			} catch (InvalidRequestException e1) {
464
//				RasterToolsUtil.messageBoxError("error_setview_preview", this);
465
//			}
466
//		}
467
//		
468
//		//-----------
469
//		//Mover punto
470
//		if(ev.getSource() instanceof GCPsGraphicLayer) {
471
//			buttonsListener.setEnableTableEvent(false);
472
//			//Se redibujan, se obtienen las coordenadas del punto y se actualiza la tabla
473
//			if(layersPointManager != null)
474
//				layersPointManager.redrawPoints();
475
//			GPGraphic gPoint = ((GCPsGraphicLayer)ev.getSource()).getLastPoint();
476
//			Point2D pRaster = gPoint.getGeoPoint().pixelPoint;
477
//			Point2D pMap = gPoint.getGeoPoint().mapPoint;
478
//			try {
479
//				table.updatePoint(	new Double(pMap.getX()), 
480
//									new Double(pMap.getY()), 
481
//									new Double(pRaster.getX()), 
482
//									new Double(pRaster.getY()), 
483
//									gPoint.getGeoPoint().number);
484
//				table.getTable().getTable().getJTable().setRowSelectionInterval(gPoint.getGeoPoint().number, gPoint.getGeoPoint().number);
485
//			} catch (NotInitializeException e) {
486
//				RasterToolsUtil.messageBoxError("no_rows_selected", table, e);
487
//			} catch (ArrayIndexOutOfBoundsException e) {
488
//				RasterToolsUtil.messageBoxError("no_rows_selected", table, e);
489
//			}
490
//			if(getOptions().isCenterView())
491
//				viewsManager.centerToPoint(gPoint.getGeoPoint().number);
492
//			buttonsListener.setEnableTableEvent(true);
493
//		}
494
//		
495
//		//------------------
496
//		//Selecci?n de punto
497
//		if(ev.getSource() instanceof SelectPointTool) {
498
//			try {
499
//				//Se obtiene el punto seleccionado, se actualiza la tabla y se redibujan
500
//				int nPoint = table.getTable().getSelectedRow();
501
//				GeoPoint gp = layersPointManager.getPointByNumber(nPoint);
502
//				
503
//				if(ev.getSource() == viewRasterSelectPointTool || ev.getSource() == zoomRasterSelectPointTool) {
504
//					Point2D[] p = (Point2D[])((SelectPointTool)ev.getSource()).getResult();
505
//					table.updateRasterPoint(new Double(p[1].getX()), new Double(p[1].getY()), nPoint);
506
//					if(gp != null) {
507
//						gp.pixelPoint = p[1];
508
//						layersPointManager.redrawPoints();
509
//					}
510
//				}
511
//				if(ev.getSource() == viewMapSelectPointTool || ev.getSource() == zoomMapSelectPointTool) {
512
//					Point2D[] p = (Point2D[])((SelectPointTool)ev.getSource()).getResult();
513
//					table.updateMapPoint(new Double(p[1].getX()), new Double(p[1].getY()), nPoint);
514
//					if(gp != null) {
515
//						gp.mapPoint = p[1];
516
//						layersPointManager.redrawPoints();
517
//					}
518
//				}
519
//				if(getOptions().isCenterView())
520
//					viewsManager.centerToPoint(nPoint);
521
//			} catch (NotInitializeException e) {
522
//				RasterToolsUtil.messageBoxError("no_rows_selected", table, e);
523
//			} catch (ArrayIndexOutOfBoundsException e) {
524
//				RasterToolsUtil.messageBoxError("no_rows_selected", table, e);
525
//			}
526
//		}
454
	public GeoreferencingView getViewRaster() {
455
		return viewRaster;
527 456
	}
528
	
529
	/**
530
	 *  <P>
531
	 *  Controla las prioridades de eventos sobre la vista en las herramientas y capas de selecci?n.
532
	 *  Esto es necesario para que no se mezclen eventos entre capas.
533
	 *  <P></P>
534
	 *  Prioridades:
535
	 *  </P>
536
	 *  <UL>
537
	 *  <LI>Capa de ZoomCursorGraphicLayer</LI>
538
	 *  <LI>Capa de GCPsGraphicLayer</LI>
539
	 *  <LI>Tool de selecci?n de zoom rectangulo</LI>
540
	 *  <LI>Tool de selecci?n de puntos</LI>
541
	 *  </UL>
542
	 */
543
	public void onTool(ToolEvent ev) {
544
		
545
//		//---------------------------
546
//		//Operaci?n de cursor de zoom 
547
//		if(ev.getSource() instanceof ZoomCursorGraphicLayer) {
548
//			layersPointManager.setActiveLayerPoints(false);
549
//			viewsManager.sleepActiveTools();
550
//			return;
551
//		}
552
//		
553
//		//-----------
554
//		//Mover punto
555
//		if(ev.getSource() instanceof GCPsGraphicLayer) {
556
//			layersPointManager.setActiveLayerZoomCursor(false);
557
//			viewsManager.sleepActiveTools();
558
//			return;
559
//		}
560
//		
561
//		//------------------
562
//		//Selecci?n de punto
563
//		if(ev.getSource() instanceof SelectPointTool) {
564
//			if(viewMap != null) {
565
//				viewMap.getControl().selectTool(ZoomRectangleTool.class, false);
566
//				viewMap.getControl().selectTool(PanTool.class, false);
567
//				viewMap.getControl().getBSelectZoomArea().setSelected(false);
568
//				viewMap.getControl().getBMove().setSelected(false);
569
//			}
570
//			if(viewRaster != null) { 
571
//				viewRaster.getControl().selectTool(ZoomRectangleTool.class, false);
572
//				viewRaster.getControl().selectTool(PanTool.class, false);
573
//				viewRaster.getControl().getBSelectZoomArea().setSelected(false);
574
//				viewRaster.getControl().getBMove().setSelected(false);
575
//			}
576
//		}
577
//		
578
//		//-------------------------
579
//		//Selecci?n de zoom ventana
580
//		if(ev.getSource() instanceof ZoomRectangleTool) {
581
//			if(viewMap != null) {
582
//				viewMap.getControl().selectTool(SelectPointTool.class, false);
583
//				viewMap.getControl().selectTool(PanTool.class, false);
584
//				viewMap.getControl().getBMove().setSelected(false);
585
//			}
586
//			if(viewRaster != null) { 
587
//				viewRaster.getControl().selectTool(SelectPointTool.class, false);
588
//				viewRaster.getControl().selectTool(PanTool.class, false);
589
//				viewRaster.getControl().getBMove().setSelected(false);
590
//			}
591
//			table.getToolSelectPointButton().setSelected(false);
592
//		}
593
//		
594
//		//---------------------------
595
//		//Selecci?n de desplazamiento
596
//		if(ev.getSource() instanceof PanTool) {
597
//			if(viewMap != null) {
598
//				viewMap.getControl().selectTool(SelectPointTool.class, false);
599
//				viewMap.getControl().selectTool(ZoomRectangleTool.class, false);
600
//				viewMap.getControl().getBSelectZoomArea().setSelected(false);
601
//			}
602
//			if(viewRaster != null) { 
603
//				viewRaster.getControl().selectTool(SelectPointTool.class, false);
604
//				viewRaster.getControl().selectTool(ZoomRectangleTool.class, false);
605
//				viewRaster.getControl().getBSelectZoomArea().setSelected(false);
606
//			}
607
//			table.getToolSelectPointButton().setSelected(false);
608
//		}
457

  
458
	public GeoreferencingView getViewMap() {
459
		return viewMap;
609 460
	}
610
	
611
	/**
612
	 *  
613
	 */
614
	public void offTool(ToolEvent ev) {
615
		
616
//		//-----------------
617
//		//Operaci?n de zoom
618
//		if(ev.getSource() instanceof ZoomCursorGraphicLayer) {
619
//			layersPointManager.setActiveLayerPoints(true);
620
//			viewsManager.awakeActiveTools();
621
//			return;
622
//		}
623
//		
624
//		//-----------
625
//		//Mover punto
626
//		if(ev.getSource() instanceof GCPsGraphicLayer) {
627
//			layersPointManager.setActiveLayerZoomCursor(true);
628
//			viewsManager.awakeActiveTools();
629
//			return;
630
//		}
631
//		
632
//		//Selecci?n de punto
633
//		/*if(ev.getSource() instanceof SelectPointTool) {
634
//		}
635
//		//Selecci?n de zoom ventana
636
//		if(ev.getSource() instanceof ZoomRectangleTool) {
637
//		}*/
461

  
462
	public GeoreferencingView getZoomMap() {
463
		return zoomMap;
638 464
	}
639
	
640
	//*******************************************************
641
	//Eventos sobre las vistas
642
	
643
	
644
	public void addingTool(ViewEvent ev) {
465

  
466
	public GeoreferencingView getZoomRaster() {
467
		return zoomRaster;
645 468
	}
646 469

  
647
	public void endDraw(ViewEvent ev) {
470
	public ViewRasterRequestManager getZoomRasterRequestManager() {
471
		return zoomRasterRequestManager;
648 472
	}
649 473

  
650
	public void startDraw(ViewEvent ev) {
474
	public ViewMapRequestManager getZoomMapRequestManager() {
475
		return zoomMapRequestManager;
651 476
	}
652 477

  
653
	/**
654
	 * Cuando cambia el zoom de alguna vista hay que recalcular la posici?n
655
	 * del cursor de zoom
656
	 */
657
	public void zoomViewChanged(ViewEvent ev) {
658
//		Rectangle2D ext = null;
659
//		try {
660
//			if(viewRaster != null && zoomRaster != null && viewsManager.getZoomRasterRequestManager() != null) {
661
//				ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight());
662
//				viewsManager.getZoomRasterRequestManager().request(ext);
663
//			}
664
//			if(viewMap != null && zoomMap != null && viewsManager.getZoomMapRequestManager() != null) {
665
//				ext = viewMap.getCursorAdjustedWorldCoordinates(zoomMap.getCanvasWidth(), zoomMap.getCanvasHeight());
666
//				viewsManager.getZoomMapRequestManager().request(ext);
667
//			}
668
//		}catch(InvalidRequestException ex) {
669
//			RasterToolsUtil.messageBoxError("error_set_view", table, ex);
670
//		}
478
	public GeorefControlPanel getGeorefControlPanel() {
479
		if(georefControlPanel == null) {
480
			georefControlPanel = sManager.createGeorefControlPanel();
481
		}
482
		return georefControlPanel;
671 483
	}
484

  
485
	public SynchronizedViews getSyncViews() {
486
		return syncViews;
487
	}
672 488
	
489
	public GeoPointList getGeoPointList() {
490
		if(geoPointList == null)
491
			geoPointList = new GeoPointListImpl();
492
		return geoPointList;
493
	}
494
	
673 495
	/**
674 496
	 * Obtiene la capa a georreferenciar
675 497
	 * @return FLyrRaster
676 498
	 */
677
	/*public FLyrRaster getLayer() {
678
		return lyrToGeoref;
679
	}*/
499
	public RasterDataStore getLayer() {
500
		return launcher.getDataModel().getDataStore();
501
	}
680 502
		
681 503
}
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/GeoreferencingProcessActions.java
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 */
19
package org.gvsig.raster.georeferencing.app.georeferencingclient;
20

  
21
import java.awt.geom.AffineTransform;
22
import java.io.File;
23

  
24
import org.gvsig.fmap.dal.coverage.RasterLocator;
25
import org.gvsig.fmap.dal.coverage.datastruct.GeoPointList;
26
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException;
27
import org.gvsig.i18n.Messages;
28
import org.gvsig.raster.fmap.layers.DefaultFLyrRaster;
29
import org.gvsig.raster.fmap.layers.FLyrRaster;
30
import org.gvsig.raster.georeferencing.app.georeferencingclient.listener.ViewMapRequestManager;
31
import org.gvsig.raster.georeferencing.lib.impl.GeoTransformDataResult;
32
import org.gvsig.raster.georeferencing.swing.exception.InvalidRequestException;
33
import org.gvsig.raster.georeferencing.swing.impl.GeoreferencingSwingImplLibrary;
34
import org.gvsig.raster.tools.algorithm.base.RasterBaseAlgorithmLibrary;
35
import org.gvsig.raster.tools.algorithm.base.process.IProcessActions;
36
import org.gvsig.raster.tools.algorithm.base.process.ProcessException;
37
import org.gvsig.raster.tools.algorithm.base.process.RasterProcess;
38
import org.gvsig.raster.tools.app.basic.RasterToolsUtil;
39

  
40
/**
41
 * Gestor para operaciones con las vistas y zooms
42
 * 
43
 * 04/02/2008
44
 * @author Nacho Brodin nachobrodin@gmail.com
45
 */
46
public class GeoreferencingProcessActions implements IProcessActions {
47
	private ViewMapRequestManager             viewMapRequestManager          = null;
48
	private GeoPointList                      gpList                         = null;
49
	private String                            fileName                       = null;
50
	
51
	//?ltima capa procesada con los puntos de control. Al cerrar la aplicaci?n 
52
	//esta ser? la que se use como resultado 
53
	private FLyrRaster                        lastTestLayer                  = null;
54

  
55
	public void setViewMapRequest(ViewMapRequestManager vMap) {
56
		viewMapRequestManager = vMap;
57
	}
58
	
59
	/**
60
	 * Asigna el panel con la tabla
61
	 * @param tablePanel
62
	 */
63
	public void setGeoPointList(GeoPointList gpList) {
64
		this.gpList = gpList;
65
	}
66
	
67
	/**
68
	 * A?ade una capa en la vista del mapa para previsualizar el resultado
69
	 * @param lyr
70
	 * @param algorithm Algoritmo con el que se realiza la transformaci?n
71
	 */
72
	public void addTestRasterLayer(	FLyrRaster lyr, 
73
									int algorithm, 
74
									int method, 
75
									int order, 
76
									String file,
77
									double cellsizeX,
78
									double cellsizeY,
79
									GeoTransformDataResult result) {
80
		if(!testNumberOfPoints(order))
81
			return;
82
		
83
		fileName = file;
84
		FLyrRaster lyrClon = null;
85
		try {
86
			lyrClon = (FLyrRaster)lyr.cloneLayer();
87
		} catch (Exception e1) {
88
			RasterToolsUtil.messageBoxError("error_clone_layer", this, e1);
89
			return;
90
		}
91
		
92
		if(algorithm == Georeferencing.AFFINE) {
93
			if(result == null) {
94
				RasterToolsUtil.messageBoxInfo("error_georef", this);
95
				return;
96
			}
97

  
98
			AffineTransform at = new AffineTransform(	result.getPixelToMapCoefX()[1], 
99
					result.getPixelToMapCoefY()[1], 
100
					result.getPixelToMapCoefX()[2], 
101
					result.getPixelToMapCoefY()[2], 
102
					result.getPixelToMapCoefX()[0], 
103
					result.getPixelToMapCoefY()[0]);
104
			lyrClon.setAffineTransform(at);
105
			lastTestLayer = lyrClon;
106
		}
107
			
108
		if(algorithm == Georeferencing.POLYNOMIAL) {
109
			RasterProcess process;
110
			try {
111
				process = RasterBaseAlgorithmLibrary.getManager().createRasterTask("GeoreferencingProcess");
112
				process.addParam("fLayer", lyr);
113
				process.addParam("filename", file);
114
				process.addParam("method", new Integer(method));
115
				process.addParam("gpcs", gpList);
116
				process.addParam("orden", new Integer(order));
117
				process.addParam("xCellSize", new Double(cellsizeX));
118
				process.addParam("yCellSize", new Double(cellsizeY));
119
				process.setActions(this);
120
				process.start();
121
			} catch (ProcessException e) {
122
				GeoreferencingSwingImplLibrary.messageBoxError("error_georef_process", null, e);
123
			}
124
		}
125

  
126
		//Con vista de de referencia cargamos la preview en esta
127
		if(viewMapRequestManager != null) {
128
			if(algorithm == Georeferencing.AFFINE) {
129
				try {
130
					viewMapRequestManager.addTestRasterLayer(lyrClon);
131
				} catch (InvalidRequestException e) {
132
					GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e);
133
				}
134
			}			
135
		} 
136
	}
137
	
138
	/**
139
	 * Consulta si hay suficientes puntos de control en la lista para los calculos
140
	 * @param order Orden del polinomio a utilizar
141
	 * @return true si hay suficientes puntos de control y false si no los hay
142
	 */
143
	private boolean testNumberOfPoints(int order) {
144
		if (gpList != null) {
145
			if(gpList.size() <= 0) {
146
				GeoreferencingSwingImplLibrary.messageBoxError("no_selected_point", null);
147
				return false;
148
			}
149
			
150
			// Obtenemos el n?mero de puntos activos
151
			int nPointsActive = 0;
152
			for (int i = 0; i < gpList.size(); i++) {
153
				if (gpList.get(i).isActive())
154
					nPointsActive++;
155
			}
156
			int nPoints = (order + 1) * (order + 2) / 2;
157
			if (nPointsActive < nPoints) {
158
				GeoreferencingSwingImplLibrary.messageBoxError(Messages.getText("more_points") + ((int) Math.ceil(nPoints)), null);
159
				return false;
160
			}
161
		}
162
		return true;
163
	}
164
	
165
	/**
166
	 * Elimina la capa de test de la vista de mapa
167
	 * @throws InvalidRequestException 
168
	 */
169
	public void removeTestRasterLayer() {
170
		if(viewMapRequestManager != null) {
171
			try {
172
				viewMapRequestManager.removeTestRasterLayer();
173
			} catch (InvalidRequestException e) {
174
				GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null);
175
			}
176
		}
177
	}
178

  
179
	/**
180
	 * Cuando termina el proceso de georreferenciaci?n carga la capa en la
181
	 * vista con cartograf?a de referencia si esta existe.
182
	 */
183
	public void end(Object param) {
184
		if(viewMapRequestManager != null) {
185
			try {
186
				String f = RasterLocator.getManager().getFileUtils().getLastPart(fileName, File.separator);
187
				FLyrRaster lyr = DefaultFLyrRaster.createLayer(fileName, new File(f));
188
				viewMapRequestManager.addTestRasterLayer(lyr);
189
				lastTestLayer = lyr;
190
			} catch (InvalidRequestException e) {
191
				GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e);
192
			} catch (LoadLayerException e) {
193
				GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e);
194
			}
195
		}
196
	}
197

  
198
	public void interrupted() {
199
	}
200

  
201
	/**
202
	 * Obtiene la ?ltima capa procesada con los puntos de  control
203
	 * @return FLyrRaterSE
204
	 */
205
	public FLyrRaster getLastTestLayer() {
206
		return lastTestLayer;
207
	}
208
	
209
}
0 210

  
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/TableDialogListener.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.georeferencing.app.georeferencingclient.listener;
23

  
24
import java.awt.event.ActionEvent;
25

  
26
import javax.swing.event.TableModelEvent;
27

  
28
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
29
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelListener;
30
import org.gvsig.raster.georeferencing.app.georeferencingclient.Georeferencing;
31
import org.gvsig.raster.georeferencing.swing.control.GeorefControlPanel;
32
import org.gvsig.raster.georeferencing.swing.control.GeorefControlPanelListener;
33

  
34
/** 
35
 * @author Nacho Brodin (nachobrodin@gmail.com)
36
 */
37
public class TableDialogListener implements ButtonsPanelListener, GeorefControlPanelListener {
38
	
39
	public TableDialogListener(GeorefControlPanel table, Georeferencing app) {
40
	}
41
	
42
	public void actionButtonPressed(ButtonsPanelEvent e) {
43
	}
44

  
45
	public void actionPerformed(ActionEvent e) {
46
		// TODO Auto-generated method stub
47
		
48
	}
49

  
50
	public void tableChanged(TableModelEvent e) {
51
		// TODO Auto-generated method stub
52
		
53
	}
54

  
55
}
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/ViewMapRequestManager.java
37 37
import org.gvsig.fmap.mapcontext.layers.FLayers;
38 38
import org.gvsig.fmap.mapcontrol.MapControl;
39 39
import org.gvsig.raster.fmap.layers.FLyrRaster;
40
import org.gvsig.raster.georeferencing.app.georeferencingclient.Georeferencing;
41 40
import org.gvsig.raster.georeferencing.swing.exception.InvalidRequestException;
42 41
import org.gvsig.raster.georeferencing.swing.view.GeoreferencingView;
43
import org.gvsig.raster.georeferencing.swing.view.IExtensionRequest;
42
import org.gvsig.raster.georeferencing.swing.view.IViewRequestManager;
44 43
import org.gvsig.raster.georeferencing.swing.view.IGraphicLayer;
44
import org.gvsig.tools.task.Cancellable;
45 45

  
46 46
/** 
47 47
 * @author Nacho Brodin (nachobrodin@gmail.com)
48 48
 */
49
public class ViewMapRequestManager implements IExtensionRequest {
49
public class ViewMapRequestManager implements IViewRequestManager {
50 50
	private FLayers            lyrs              = null;
51 51
	private GeoreferencingView view              = null;
52 52
	private MapControl         mapControl        = null;
......
54 54
	private Color              backGroundColor   = null;
55 55
	private FLyrRaster         testLayer         = null;
56 56
	
57
	public ViewMapRequestManager(GeoreferencingView view, Georeferencing app, MapControl mapControl) {
57
	public ViewMapRequestManager(GeoreferencingView view, MapControl mapControl) {
58 58
		this.mapControl = mapControl;
59 59
		this.lyrs = mapControl.getMapContext().getLayers();
60 60
		this.view = view;
......
160 160
			DefaultMapContextDrawer mapContextDrawer = new DefaultMapContextDrawer();
161 161
			mapContextDrawer.setMapContext(lyrs.getMapContext());
162 162
			mapContextDrawer.setViewPort(vp);
163
			mapContextDrawer.draw(lyrs, initImg, img, null, mapControl.getMapContext().getScaleView());
163
			Cancellable c = new Cancellable() {
164
				public void setCanceled(boolean canceled) {
165
				}
166
				
167
				public boolean isCanceled() {
168
					return false;
169
				}
170
			};
171
			mapContextDrawer.draw(lyrs, initImg, img, c, mapControl.getMapContext().getScaleView());
164 172
			//lyrs.draw(initImg, img, vp, new CancellableClass(), mapControl.getMapContext().getScaleView());
165 173

  
166 174
			setDrawParams(initImg, extent);
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
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.raster.georeferencing.app.georeferencingclient.listener;
23

  
24
import java.awt.event.ActionEvent;
25
import java.awt.geom.Point2D;
26
import java.io.IOException;
27

  
28
import javax.swing.event.TableModelEvent;
29

  
30
import org.gvsig.andami.PluginServices;
31
import org.gvsig.andami.ui.mdiManager.IWindow;
32
import org.gvsig.fmap.dal.coverage.datastruct.GeoPoint;
33
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException;
34
import org.gvsig.fmap.mapcontext.layers.FLayers;
35
import org.gvsig.gui.beans.buttonspanel.ButtonsPanelEvent;
36
import org.gvsig.i18n.Messages;
37
import org.gvsig.raster.georeferencing.app.georeferencingclient.Georeferencing;
38
import org.gvsig.raster.georeferencing.framework.GeoreferencingFrameworkLocator;
39
import org.gvsig.raster.georeferencing.framework.GeoreferencingFrameworkManager;
40
import org.gvsig.raster.georeferencing.swing.control.GeorefControlPanel;
41
import org.gvsig.raster.georeferencing.swing.control.GeorefControlPanelListener;
42
import org.gvsig.raster.georeferencing.swing.impl.option.GeorefOptionsDialog;
43
import org.gvsig.raster.swing.impl.pagedtable.NotInitializeException;
44
import org.gvsig.raster.swing.pagedtable.PagedTable;
45
import org.gvsig.raster.tools.app.basic.RasterToolsUtil;
46
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
47

  
48
/**
49
 * Listener para los botones de control de la aplicaci?n de georreferenciaci?n.
50
 * F?sicamente est?n en el panel de la tabla de puntos de control.
51
 *
52
 * 25/01/2008
53
 * @author Nacho Brodin nachobrodin@gmail.com
54
 */
55
public class ApplicationControlsListener implements GeorefControlPanelListener {
56

  
57
	private PagedTable                tablePanel          = null;
58
	private Georeferencing            appMain             = null;
59
	private boolean                   enableTableEvent    = true;
60
	private GeorefControlPanel        controlPanel        = null;
61
	private GeorefOptionsDialog       optionsDialog       = null;
62
	GeoreferencingFrameworkManager    fManager            = null;
63
	//private GeoPointsPersistence      persistence         = null;
64

  
65
	/**
66
	 * Flag que estar? a true despu?s de crear un nuevo punto de control. Volver? a false
67
	 * cuando se ejecute el evento de inserci?n de fila en una tabla. Esto es necesario para
68
	 * que no se centre el punto sobre la vista despu?s de insertar un nuevo punto. Ya que las
69
	 * vistas se van a la posici?n (0,0)
70
	 */
71
	private boolean                   newPointCreated     = false;
72

  
73
	/**
74
	 * Constructor. Asigna el panel con los controles
75
	 * @param tablePanel
76
	 */
77
	public ApplicationControlsListener(PagedTable tablePanel, Georeferencing appMain) {
78
		this.tablePanel = tablePanel;
79
		this.appMain = appMain;
80
		this.controlPanel = appMain.getGeorefControlPanel();
81
		this.controlPanel.setListener(this);
82
		this.fManager = GeoreferencingFrameworkLocator.getManager();
83
	}
84

  
85
	/**
86
	 * Eventos de los botones del cuadro de tabla y selecci?n de fila de tabla
87
	 */
88
	public void actionPerformed(ActionEvent e) {
89
		//-------------------------------------
90
		//Finalizaci?n de la georreferenciaci?n
91
		if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bEndGeoref)
92
			endGeoref();
93

  
94
		//-----------------------------------------
95
		//Centrar la vista en el punto seleccionado
96
		if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bCenterView) {
97
			try {
98
				appMain.getSyncViews().centerToPoint(tablePanel.getSelectedRows()[0]);
99
			} catch (NotInitializeException e1) {
100
				RasterToolsUtil.messageBoxYesOrNot("table_not_initialize", tablePanel, e1);
101
			}
102
		}
103

  
104
		//---------------------------------
105
		//Selecci?n de una fila de la tabla
106
		if(e.getActionCommand().equals("SELECT_ROW")) {
107
			if(appMain.getOptionsDataModel().isCenterView() && !newPointCreated)
108
				appMain.getSyncViews().centerToPoint(e.getID());
109
			newPointCreated = false;
110
		}
111

  
112
		//----------------------------------------------------------
113
		//Seleccion de opciones. Se asignan las propiedades al abrir
114
		if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bOptions) {
115
			if(optionsDialog == null)
116
				optionsDialog = new GeorefOptionsDialog(Georeferencing.DEFAULT_DEGREE, this);
117
			optionsDialog.setDegree(appMain.getOptionsDataModel().getDegree());
118
			optionsDialog.setAlgorithm(appMain.getOptionsDataModel().getAlgorithm());
119
			optionsDialog.setBackGroundColor(appMain.getOptionsDataModel().getBackgroundColor());
120
			optionsDialog.setTextColor(appMain.getOptionsDataModel().getTextColor());
121
			optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getAddErrorsCSVCheck().setSelected(getOptions().isAddErrorsCSV());
122
			optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getCenterViewCheck().setSelected(getOptions().isCenterView());
123
			optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getShowNumberCheck().setSelected(getOptions().isShowNumber());
124
			optionsDialog.setThresholdError(appMain.getOptionsDataModel().getThreshold());
125
			optionsDialog.setInterpolationMethod(appMain.getOptionsDataModel().getInterpolationMethod());
126
			optionsDialog.setOutFile(appMain.getOptionsDataModel().getOutFile());
127
			optionsDialog.setXCellSize(appMain.getOptionsDataModel().getXCellSize());
128
			optionsDialog.setYCellSize(appMain.getOptionsDataModel().getYCellSize());
129
			fManager.showWindow(optionsDialog, 400, 420, Messages.getText("georeferencing"));
130
		}
131

  
132
		//------------------------------
133
		//Selecci?n de puntos de control
134
		if(controlPanel.getButtonIDPressed(e.getSource()) == tablePanel.getToolSelectPointButton()) {
135
			if( tablePanel.getToolSelectPointButton().isSelected()) {
136
				try {
137
					if(!getPointManager().isSelectPointToolSelected()) {
138
						//No hay filas en la tabla
139
						if(tablePanel.getTable().getRowCount() == 0) {
140
							RasterToolsUtil.messageBoxError("no_rows", tablePanel);
141
							tablePanel.getToolSelectPointButton().setSelected(false);
142
							return;
143
						}
144

  
145
						//No hay filas seleccionadas en la tabla
146
						if(tablePanel.getTable().getSelectedRow() == -1) {
147
							RasterToolsUtil.messageBoxError("no_rows_selected", tablePanel);
148
							tablePanel.getToolSelectPointButton().setSelected(false);
149
							return;
150
						}
151
						getViewsManager().selectPointTool(true);
152
					}
153
				} catch (NotInitializeException e1) {
154
					RasterToolsUtil.messageBoxYesOrNot("table_not_initialize", tablePanel, e1);
155
				}
156
			} else {
157
				getViewsManager().selectPointTool(false);
158
			}
159
		}
160

  
161
		//-------
162
		//Testear
163
		if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bTest) {
164
			appMain.addTestRasterLayer(appMain.getLayer());
165
		}
166

  
167
		//------------
168
		//Fin del Test
169
		if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bEndTest) {
170
			if(appMain != null && appMain.getLastTestLayer() != null) {
171
				appMain.getLastTestLayer().setRemoveRasterFlag(false);
172
				appMain.removeTestRasterLayer();
173
			}
174
		}
175

  
176
		//------------
177
		//Salvar a CSV
178
//		if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bSaveToAscii) {
179
//			getPersistence().exportToCSV(getPointManager().getPointList(), getOptions().isAddErrorsCSV());
180
//		}
181
//
182
//		//----------------
183
//		//Cargar desde CSV
184
//		if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bLoadFromAscii) {
185
//			setEnableTableEvent(false);
186
//			getPersistence().importFromCSV(getPointManager(), tablePanel);
187
//			setEnableTableEvent(true);
188
//		}
189
//
190
//		//------------
191
//		//Salvar a RMF
192
//		if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bSaveToXml) {
193
//			getPersistence().saveToRMF(getPointManager().getPointList(), appMain.getLayer().getDataSource());
194
//		}
195
//
196
//		//----------------
197
//		//Cargar desde RMF
198
//		if(controlPanel.getButtonIDPressed(e.getSource()) == GeorefControlPanel.bLoadFromXml) {
199
//			setEnableTableEvent(false);
200
//			getPersistence().loadFromRMF(appMain.getLayer().getDataSource(), getPointManager(), tablePanel);
201
//			setEnableTableEvent(true);
202
//		}
203
	}
204

  
205
	/**
206
	 * Acciones de finalizaci?n de georreferenciaci?n. La secuencia de acciones es:
207
	 * <UL>
208
	 * <LI>Preguntar si est? seguro de finalizar.</LI>
209
	 * <LI>Preguntar si se desea salvar la transformaci?n (Solo en caso de ser af?n).</LI>
210
	 * <LI>Preguntar si se desea cargar el resultado en la vista (Solo en caso de ser con mapa de referencia).</LI>
211
	 * </UL>
212
	 */
213
	private void endGeoref() {
214
		if(RasterToolsUtil.messageBoxYesOrNot("ask_end_georef", null)) {
215
			boolean saveTransform = false;
216
			if(appMain.getOptionsDataModel().getAlgorithm() == Georeferencing.AFFINE) {
217
				if(RasterToolsUtil.messageBoxYesOrNot("ask_save_transformation", null))
218
					saveTransform = true;
219
				else {
220
					appMain.removeTestRasterLayer();
221
					appMain.closeAllWindows();
222
					return;
223
				}
224
			}
225

  
226
			if(appMain.getOptionsDataModel().getType() == Georeferencing.WITH_MAP) {
227
				if(appMain.getLastTestLayer() != null)
228
					appMain.getLastTestLayer().setRemoveRasterFlag(false);
229

  
230
				if(RasterToolsUtil.messageBoxYesOrNot("ask_load_view", null)) {
231
					FLayers lyrs = appMain.getLayers();
232
					if(lyrs != null) {
233
						try {
234
							if(appMain.getLastTestLayer() != null){
235
								lyrs.removeLayer(appMain.getLastTestLayer());
236
								PluginServices.getMainFrame().enableControls();
237
							}
238
						} catch(NullPointerException ex){
239
							//No hay raster para eliminar
240
						}
241
					}
242

  
243
					//Cargar en la vista
244
					if(appMain.getOptionsDataModel().getAlgorithm() == Georeferencing.AFFINE) {
245
						appMain.addTestRasterLayer(appMain.getLayer());
246
					}
247
					if(appMain.getOptionsDataModel().getAlgorithm() == Georeferencing.POLYNOMIAL) {
248
						if(appMain.getLastTestLayer() != null && lyrs != null) {
249
							appMain.getLayers().addLayer(appMain.getLastTestLayer());
250
						} else {
251
							RasterToolsUtil.messageBoxInfo("raster_not_created", null);
252
							return;
253
						}
254
					}
255
				} else {
256
					appMain.removeTestRasterLayer();
257
				}
258
			}
259

  
260
			if (saveTransform) {
261
				// Salvar transformaci?n
262
				if (appMain.getLastTestLayer() == null) {
263
					RasterToolsUtil.messageBoxInfo("raster_not_created", null);
264
					return;
265
				}
266

  
267
				// Guardamos la GeoReferenciacion de cada dataset
268
				IRasterDataSource dataSource = appMain.getLastTestLayer().getDataSource();
269
				try {
270
					for (int i = 0; i < dataSource.getDatasetCount(); i++) {
271
						dataSource.saveObjectToRmf(i, RasterDataset.class, dataSource.getDataset(i)[0]);
272
						RasterUtilities.createWorldFile(dataSource.getNameDatasetStringList(0, 0)[i], dataSource.getAffineTransform(0), (int)dataSource.getWidth(), (int)dataSource.getHeight());
273
					}
274
				} catch (RmfSerializerException e) {
275
					RasterToolsUtil.messageBoxError("error_salvando_rmf", null, e);
276
				} catch (IOException e) {
277
					RasterToolsUtil.messageBoxError("error_salvando_rmf", null, e);
278
				}
279
			}
280
			
281
			appMain.closeAllWindows();
282
		}
283
	}
284

  
285
	/**
286
	 * Evento de modificaci?n de la tabla de puntos de control. El a?adir, borrar
287
	 * o mover puntos dentro de la tabla hace que estos se creen, borren o muevan en
288
	 * la lista de GeoPoints.
289
	 */
290
	public void tableChanged(TableModelEvent e) {
291
		if(!enableTableEvent)
292
			return;
293
		setEnableTableEvent(false);
294
		try{
295

  
296
			//-----------------------------------
297
			//Inserci?n de nuevo fila en la tabla
298
			if(e.getType() == TableModelEvent.INSERT) {
299
				long id = appMain.getSyncViews().addPoint(new Point2D.Double(0, 0), new Point2D.Double(0, 0));
300
				tablePanel.initializeRow(e.getFirstRow(), id);
301
				appMain.getSyncViews().calcPointsNumeration();
302

  
303
				//Activamos la herramienta de pinchar punto en la vista al a?adir punto
304
				tablePanel.getToolSelectPointButton().setSelected(true);
305
				appMain.getSyncViews().selectPointTool(true);
306

  
307
				newPointCreated = true;
308
			}
309

  
310
			//-----------------------------
311
			//Eliminado de fila de la tabla
312
			if(e.getType() == TableModelEvent.DELETE) {
313
				for (int i = e.getLastRow(); i >= e.getFirstRow(); i--)
314
					appMain.getSyncViews().removePoint(i);
315
				appMain.getSyncViews().calcPointsNumeration();
316
				tablePanel.updateErrors();
317
			}
318

  
319
			//-------------------------------------
320
			//Actualizaci?n de una fila de la tabla
321
			if(e.getType() == TableModelEvent.UPDATE) {
322
				appMain.getSyncViews().calcPointsNumeration();
323
				//Revisamos el flag de activo de cada punto poniendo el valor que pone en la entrada de la tabla
324
				for (int i = 0; i < tablePanel.getRowCount(); i++) {
325
					boolean active = ((Boolean) tablePanel.getValueAt(i, 0)).booleanValue();
326
					int position = appMain.getSyncViews().getPointPositionByNumber(i);
327
					if (position < 0)
328
						return;
329
					GeoPoint pt = appMain.getGeoPointList().get(position);
330
					pt.setActive(active);
331
					appMain.getSyncViews().setVisiblePoint(active, position);
332

  
333
					//Para la funcionalidad de cambio de coordenadas desde la tabla: reasignamos el valor
334
					//de las coordenadas por si han cambiado estas
335
					double[] values = tablePanel.getCoordinates(i);
336

  
337
					appMain.getSyncViews().setCoordinates(position, values[0], values[1], values[2], values[3]);
338
				}
339
				tablePanel.updateErrors();
340
			}
341

  
342
		}catch (NotInitializeException ex) {
343
			RasterToolsUtil.messageBoxError("table_not_initialize", tablePanel, ex);
344
		}
345
		setEnableTableEvent(true);
346
	}
347

  
348
	/**
349
	 * Eventos de los botones del cuadro de opciones
350
	 */
351
	public void actionButtonPressed(ButtonsPanelEvent e) {
352

  
353
		//---------------------------------------------------
354
		//Bot?n de Aplicar y Aceptar en el cuadro de opciones
355
		if (e.getButton() == ButtonsPanel.BUTTON_APPLY || e.getButton() == ButtonsPanel.BUTTON_ACCEPT) {
356
			if(optionsDialog != null) {
357

  
358
				//Asignamos las propiedades seleccionadas
359
				appMain.getOptionsDataModel().setAlgorithm(optionsDialog.getAlgorithm());
360
				appMain.getOptionsDataModel().setBackGroundColor(optionsDialog.getBackGroundColor());
361
				appMain.getOptionsDataModel().setTextColor(optionsDialog.getTextColor());
362
				appMain.getOptionsDataModel().setAddErrorsCSV(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getAddErrorsCSVCheck().isSelected());
363
				appMain.getOptionsDataModel().setCenterView(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getCenterViewCheck().isSelected());
364
				appMain.getOptionsDataModel().setShowNumber(optionsDialog.getOptionsPanel(this).getCheckOptionsPanel().getShowNumberCheck().isSelected());
365
				appMain.getOptionsDataModel().setInterpolationMethod(optionsDialog.getInterpolationMethod());
366
				appMain.getOptionsDataModel().setOutFile(optionsDialog.getOptionsPanel(this).getOutFileSelectionPanel().getOutFile());
367

  
368
				//Recalculamos los errores si ha cambiado el grado
369
				if(optionsDialog.getDegree() != appMain.getOptionsDataModel().getDegree()) {
370
					appMain.getOptionsDataModel().setDegree(optionsDialog.getDegree());
371
					tablePanel.updateErrors();
372
				}
373

  
374
				try {
375
					appMain.getOptionsDataModel().setThreshold(Double.valueOf(optionsDialog.getThresholdError().getValue()).doubleValue());
376
					appMain.getOptionsDataModel().setXCellSize(optionsDialog.getOptionsPanel(this).getCellSizePanel().getXCellSizeValue());
377
					appMain.getOptionsDataModel().setYCellSize(optionsDialog.getOptionsPanel(this).getCellSizePanel().getYCellSizeValue());
378
				} catch(NumberFormatException exc) {
379
					RasterToolsUtil.messageBoxError("error_numeric_format", null, exc);
380
				}
381

  
382
				appMain.getSyncViews().setGraphicsColor(appMain.getOptionsDataModel().getTextColor());
383
				appMain.getSyncViews().setBackgroundColor(appMain.getOptionsDataModel().getBackGroundColor());
384
				appMain.getSyncViews().setActiveNumberPoint(appMain.getOptionsDataModel().isShowNumber());
385

  
386
			}
387
		}
388

  
389
		//--------------------------------------------------
390
		// Bot?n de Cerrar y Aceptar en el cuadro de opciones
391
		if (e.getButton() == ButtonsPanel.BUTTON_CANCEL || e.getButton() == ButtonsPanel.BUTTON_ACCEPT) {
392
			if(optionsDialog != null) {
393
				fManager.closeWindow(optionsDialog);
394
			}
395
		}
396
	}
397

  
398
	/*private GeorefOptionsDialog getOptions() {
399
		if(georefOptions == null)
400
			georefOptions = GeoreferencingSwingLocator.getSwingManager().createWindowOptions(appMain.getOptionsDataModel().getDegree(), this);
401
		return georefOptions;
402
	}*/
403

  
404
	/**
405
	 * Consulta si est?n activos los eventos de tabla o no
406
	 * @return true si est?n activos y false si no lo est?n
407
	 */
408
	public boolean isEnableTableEvent() {
409
		return enableTableEvent;
410
	}
411

  
412
	/**
413
	 * Activa o desactiva los eventos de tabla
414
	 * @param enableTableEvent true para activarlos o false para desactivarlos
415
	 */
416
	public void setEnableTableEvent(boolean enableTableEvent) {
417
		this.enableTableEvent = enableTableEvent;
418
	}
419

  
420

  
421
	/**
422
	 * Obtiene una instancia del objeto que gestiona la
423
	 * persistencia en disco de los puntos de control
424
	 * @return GeoPointsPersistence
425
	 */
426
	/*public GeoPointsPersistence getPersistence() {
427
		if(persistence == null)
428
			persistence = new GeoPointsPersistence();
429
		return persistence;
430
	}*/
431
}
0 432

  
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/ViewRasterRequestManager.java
45 45
import org.gvsig.raster.georeferencing.swing.impl.GeoreferencingSwingImplLibrary;
46 46
import org.gvsig.raster.georeferencing.swing.impl.layer.GCPsGraphicLayer;
47 47
import org.gvsig.raster.georeferencing.swing.view.GeoreferencingView;
48
import org.gvsig.raster.georeferencing.swing.view.IExtensionRequest;
48
import org.gvsig.raster.georeferencing.swing.view.IViewRequestManager;
49 49
import org.gvsig.raster.georeferencing.swing.view.IGraphicLayer;
50 50

  
51 51
/** 
52 52
 * @author Nacho Brodin (nachobrodin@gmail.com)
53 53
 */
54
public class ViewRasterRequestManager implements IExtensionRequest {
54
public class ViewRasterRequestManager implements IViewRequestManager {
55 55
	private GeometryManager          geomManager       = GeometryLocator.getGeometryManager();
56 56
	private GeoreferencingView       view              = null;
57 57
	private RasterDataStore          store             = 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/ViewDialogListener.java
21 21
 */
22 22
package org.gvsig.raster.georeferencing.app.georeferencingclient.listener;
23 23

  
24
import java.awt.geom.Rectangle2D;
25

  
24 26
import org.gvsig.raster.georeferencing.app.georeferencingclient.Georeferencing;
25
import org.gvsig.raster.georeferencing.swing.view.GeoreferencingView;
27
import org.gvsig.raster.georeferencing.swing.GeoreferencingSwingLibrary;
28
import org.gvsig.raster.georeferencing.swing.exception.InvalidRequestException;
29
import org.gvsig.raster.georeferencing.swing.impl.GeoreferencingSwingImplLibrary;
30
import org.gvsig.raster.georeferencing.swing.impl.layer.GCPsGraphicLayer;
31
import org.gvsig.raster.georeferencing.swing.impl.layer.ZoomCursorGraphicLayer;
32
import org.gvsig.raster.georeferencing.swing.impl.tool.PanTool;
33
import org.gvsig.raster.georeferencing.swing.impl.tool.SelectPointTool;
34
import org.gvsig.raster.georeferencing.swing.impl.tool.ZoomRectangleTool;
35
import org.gvsig.raster.georeferencing.swing.view.ToolEvent;
36
import org.gvsig.raster.georeferencing.swing.view.ToolListener;
26 37
import org.gvsig.raster.georeferencing.swing.view.ViewEvent;
27 38
import org.gvsig.raster.georeferencing.swing.view.ViewListener;
28 39

  
29 40
/** 
30 41
 * @author Nacho Brodin (nachobrodin@gmail.com)
31 42
 */
32
public class ViewDialogListener implements ViewListener {
43
public class ViewDialogListener implements ViewListener, ToolListener {
44
	private Georeferencing app = null;
33 45
	
34
	public ViewDialogListener(GeoreferencingView view, Georeferencing app) {
46
	public ViewDialogListener(Georeferencing app) {
47
		this.app = app;
35 48
	}
36 49

  
37 50
	public void addingTool(ViewEvent ev) {
......
49 62
		
50 63
	}
51 64

  
65
	/**
66
	 * Cuando cambia el zoom de alguna vista hay que recalcular la posici?n
67
	 * del cursor de zoom
68
	 */
52 69
	public void zoomViewChanged(ViewEvent ev) {
53
		// TODO Auto-generated method stub
70
		Rectangle2D ext = null;
71
		try {
72
			if(app.getViewRaster() != null && app.getZoomRaster() != null && app.getZoomRasterRequestManager() != null) {
73
				ext = app.getViewRaster().getCursorAdjustedWorldCoordinates(app.getZoomRaster().getCanvasWidth(), app.getZoomRaster().getCanvasHeight());
74
				app.getZoomRasterRequestManager().request(ext);
75
			}
76
			if(app.getViewMap() != null && app.getZoomMap() != null && app.getZoomMapRequestManager() != null) {
77
				ext = app.getViewMap().getCursorAdjustedWorldCoordinates(app.getZoomMap().getCanvasWidth(), app.getZoomMap().getCanvasHeight());
78
				app.getZoomMapRequestManager().request(ext);
79
			}
80
		}catch(InvalidRequestException ex) {
81
			GeoreferencingSwingImplLibrary.messageBoxError("error_set_view", null, ex);
82
		}
83
	}
84

  
85
	/**
86
	 * Controla los eventos de finalizaci?n de la capa con el 
87
	 * cursor gr?fico que controla el ?rea de la miniimagen asociada y
88
	 * la terminaci?n de la operaci?n de mover punto
89
	 */
90
	public void endAction(ToolEvent ev) {
54 91
		
92
		//-----------------
93
		//Operaci?n de zoom
94
		if(ev.getSource() instanceof ZoomCursorGraphicLayer) {
95
			try {	
96
				Rectangle2D ext = null;
97
				if(app.getViewRaster() != null) {
98
					ext = app.getViewRaster().getCursorAdjustedWorldCoordinates(app.getZoomRaster().getCanvasWidth(), app.getZoomRaster().getCanvasHeight());
99
					app.getZoomRasterRequestManager().request(ext);
100
				}
101
				if(app.getViewMap() != null) {
102
					ext = app.getViewMap().getCursorAdjustedWorldCoordinates(app.getZoomMap().getCanvasWidth(), app.getZoomMap().getCanvasHeight());
103
					app.getZoomMapRequestManager().request(ext);
104
				}
105
			} catch (InvalidRequestException e1) {
106
				GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
107
			}
108
		}
109
		
110
		//-----------
111
		//Mover punto
112
//		if(ev.getSource() instanceof GCPsGraphicLayer) {
113
//			buttonsListener.setEnableTableEvent(false);
114
//			//Se redibujan, se obtienen las coordenadas del punto y se actualiza la tabla
115
//			if(app.getSyncViews() != null)
116
//				app.getSyncViews().redrawPoints();
117
//			GPGraphic gPoint = ((GCPsGraphicLayer)ev.getSource()).getLastPoint();
118
//			Point2D pRaster = gPoint.getGeoPoint().pixelPoint;
119
//			Point2D pMap = gPoint.getGeoPoint().mapPoint;
120
//			try {
121
//				table.updatePoint(	new Double(pMap.getX()), 
122
//									new Double(pMap.getY()), 
123
//									new Double(pRaster.getX()), 
124
//									new Double(pRaster.getY()), 
125
//									gPoint.getGeoPoint().number);
126
//				table.getTable().getTable().getJTable().setRowSelectionInterval(gPoint.getGeoPoint().number, gPoint.getGeoPoint().number);
127
//			} catch (NotInitializeException e) {
128
//				RasterToolsUtil.messageBoxError("no_rows_selected", table, e);
129
//			} catch (ArrayIndexOutOfBoundsException e) {
130
//				RasterToolsUtil.messageBoxError("no_rows_selected", table, e);
131
//			}
132
//			if(getOptions().isCenterView())
133
//				viewsManager.centerToPoint(gPoint.getGeoPoint().number);
134
//			buttonsListener.setEnableTableEvent(true);
135
//		}
136
//		
137
//		//------------------
138
//		//Selecci?n de punto
139
//		if(ev.getSource() instanceof SelectPointTool) {
140
//			try {
141
//				//Se obtiene el punto seleccionado, se actualiza la tabla y se redibujan
142
//				int nPoint = table.getTable().getSelectedRow();
143
//				GeoPoint gp = layersPointManager.getPointByNumber(nPoint);
144
//				
145
//				if(ev.getSource() == viewRasterSelectPointTool || ev.getSource() == zoomRasterSelectPointTool) {
146
//					Point2D[] p = (Point2D[])((SelectPointTool)ev.getSource()).getResult();
147
//					table.updateRasterPoint(new Double(p[1].getX()), new Double(p[1].getY()), nPoint);
148
//					if(gp != null) {
149
//						gp.pixelPoint = p[1];
150
//						layersPointManager.redrawPoints();
151
//					}
152
//				}
153
//				if(ev.getSource() == viewMapSelectPointTool || ev.getSource() == zoomMapSelectPointTool) {
154
//					Point2D[] p = (Point2D[])((SelectPointTool)ev.getSource()).getResult();
155
//					table.updateMapPoint(new Double(p[1].getX()), new Double(p[1].getY()), nPoint);
156
//					if(gp != null) {
157
//						gp.mapPoint = p[1];
158
//						layersPointManager.redrawPoints();
159
//					}
160
//				}
161
//				if(getOptions().isCenterView())
162
//					viewsManager.centerToPoint(nPoint);
163
//			} catch (NotInitializeException e) {
164
//				RasterToolsUtil.messageBoxError("no_rows_selected", table, e);
165
//			} catch (ArrayIndexOutOfBoundsException e) {
166
//				RasterToolsUtil.messageBoxError("no_rows_selected", table, e);
167
//			}
168
//		}
55 169
	}
56 170

  
171
	public void offTool(ToolEvent ev) {
172
		
173
		//-----------------
174
		//Operaci?n de zoom
175
		if(ev.getSource() instanceof ZoomCursorGraphicLayer) {
176
			app.getSyncViews().setActiveLayerPoints(true);
177
			app.getSyncViews().awakeActiveTools();
178
			return;
179
		}
180
		
181
		//-----------
182
		//Mover punto
183
		if(ev.getSource() instanceof GCPsGraphicLayer) {
184
			app.getSyncViews().setActiveLayerZoomCursor(true);
185
			app.getSyncViews().awakeActiveTools();
186
			return;
187
		}
188
		
189
		//Selecci?n de punto
190
		/*if(ev.getSource() instanceof SelectPointTool) {
191
		}
192
		//Selecci?n de zoom ventana
193
		if(ev.getSource() instanceof ZoomRectangleTool) {
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff