Revision 1711

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
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.RasterLocator;
38 37
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
39
import org.gvsig.fmap.mapcontext.layers.FLayers;
38
import org.gvsig.fmap.geom.primitive.Envelope;
40 39
import org.gvsig.fmap.mapcontrol.MapControl;
41 40
import org.gvsig.i18n.Messages;
42 41
import org.gvsig.raster.georeferencing.app.georeferencingclient.gui.CheckBoxColumnEditor;
......
67 66
import org.gvsig.raster.swing.RasterSwingManager;
68 67
import org.gvsig.raster.swing.pagedtable.ModelLoader;
69 68
import org.gvsig.raster.swing.pagedtable.PagedTable;
70
import org.jdesktop.swingx.renderer.MappedValue;
71 69

  
72 70
/**
73 71
 * Clase principal para la georreferenciaci?n. Se encarga de la inicializaci?n
......
124 122
	private GeoreferencingOptionsDataModel
125 123
	                                      optionsDataModel               = null;
126 124
	private MapControl                    mapCtrl                        = null;
125
	private GeoreferencingOptionsDataModel 
126
	                                      dataModel                      = null;
127 127
	
128 128
	//private LayersPointManager            layersPointManager             = null;
129 129
	//private ViewsManager                  viewsManager                   = null;
......
196 196
		return null;
197 197
	}*/
198 198
	
199
	private MapControl getMapCtrl(String viewName) {
199
	private MapControl getMapCtrl() {
200 200
		if(mapCtrl == null) {
201 201
			IWindow[] windowList = PluginServices.getMDIManager().getAllWindows();
202 202
			for (int i = 0; i < windowList.length; i++) {
203 203
				if(windowList[i] instanceof IView) {
204 204
					String name = ((IView)windowList[i]).getViewDocument().getName();
205
					if(name.equals(viewName)) {
205
					if(name.equals(dataModel.getSelectedView())) {
206 206
						mapCtrl = ((IView)windowList[i]).getMapControl();
207 207
					}
208 208
				}
......
211 211
		return mapCtrl;
212 212
	}
213 213
	
214
	public void endLauncherDialog(GeoreferencingOptionsDataModel dataModel) {
215
		this.dataModel = dataModel;
216
		if(dataModel.getType() == Georeferencing.WITH_MAP)
217
			initWindowsWithMap(dataModel);
218
		if(dataModel.getType() == Georeferencing.WITHOUT_MAP)
219
			initWindowsWithoutMap(dataModel);
220
	}
221
	
214 222
	/**
215 223
	 * Colocaci?n inicial de las ventanas del espacio de trabajo. Carga la configuraci?n
216 224
	 * de ventanas con cartograf?a de referencia.
217 225
	 */
218
	public void initWindowsWithoutMap(GeoreferencingOptionsDataModel dataModel) {
226
	private void initWindowsWithoutMap(GeoreferencingOptionsDataModel dataModel) {
219 227
		RasterDataStore store = dataModel.getDataStore();
220 228
		
221 229
		getOptions().setType(WITHOUT_MAP);
......
262 270
			Rectangle2D ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight());
263 271
			zoomRasterRequestManager.initRequest(dataModel.getDataStore().getExtent().toRectangle2D());
264 272
			zoomRasterRequestManager.request(ext);
265
			
266
//			layersPointManager.createGCPPIxelLayer(viewRaster, viewRasterRequestManager, zoomRasterRequestManager);
267
//			
273
		
268 274
		} catch (InvalidRequestException e1) {
269
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
275
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
270 276
			fManager.closeAllWindows();
271 277
		}catch (Exception e1) {
272
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
278
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e1);
273 279
			fManager.closeAllWindows();
274 280
		}
275 281
	}
......
305 311
	 * Colocaci?n inicial de las ventanas del espacio de trabajo. Carga la configuraci?n
306 312
	 * de ventanas con cartograf?a de referencia.
307 313
	 */
308
	public void initWindowsWithMap(GeoreferencingOptionsDataModel dataModel) {
314
	private void initWindowsWithMap(GeoreferencingOptionsDataModel dataModel) {
309 315
		RasterDataStore store = dataModel.getDataStore();
310 316
		
311 317
		getOptions().setType(WITH_MAP);
......
350 356
		layoutEnv.setControlBar(georefControlPanel.getComponent());
351 357
		
352 358
		fManager.createLayout(layoutEnv);
353
		SynchronizedViews syncViews = sManager.createSyncViews(null, viewRaster, null, zoomRaster, table, this);
359
		SynchronizedViews syncViews = sManager.createSyncViews(viewMap, viewRaster, zoomMap, zoomRaster, table, this);
354 360
		
355
		
356 361
		getOptions().setType(WITH_MAP);
357 362
//		
358
//		//Si hay ventanas de georreferenciaci?n abiertas las cerramos
359
//		closeAllWindows();
360
//		
361
//		MapControl mapControl = null;
362
//		IWindow[] windowList = PluginServices.getMDIManager().getAllWindows();
363
//		for (int i = 0; i < windowList.length; i++) {
364
//			if(windowList[i] instanceof IView && windowList[i].getWindowInfo().getTitle().endsWith(": " + selectedView)) 
365
//				mapControl = ((IView)windowList[i]).getMapControl();
366
//		}
367
//		
368
//		if(mapControl == null) {
369
//			RasterToolsUtil.messageBoxError("error_lookingfor_view", this);
370
//			return;
371
//		}
372
//		
373
//		//Inicializamos el control de tabla
374
//		table = new GCPTablePanelImpl(smallWindowsWidth, posYViews, tableWidth, smallWindowsHeight, this);
375
//		buttonsListener = new TableControlListener(table, this);
376
//		table.initialize(buttonsListener);
377
//				
378
//		//Inicializaci?n de la ventana con la vista mapa
379
//		viewMap = new ViewPanelImpl(0, 0, wViews, hViews, this);
380
//		viewMap.setViewListener(this);
381
//		viewMap.setShowInfo(true);
382
//		ViewMapRequestManager viewMapRequestManager = new ViewMapRequestManager(viewMap, mapControl);
383
//		viewMap.setExtensionRequest(viewMapRequestManager);
384
//		viewMapSelectPointTool = new SelectPointTool(viewMap.getCanvas(), this);
385
//		
386
//		//Inicializaci?n de la ventana con la vista raster
387
//		viewRaster = new ViewPanelImpl(wViews, 0, wViews, hViews, this);
388
//		viewRaster.setViewListener(this);
389
//		viewRaster.setMinxMaxyUL(false);
390
//		viewRaster.setShowInfo(true);
391
//		ViewRasterRequestManager viewRasterRequestManager = new ViewRasterRequestManager(viewRaster, lyrToGeoref);
392
//		viewRaster.setExtensionRequest(viewRasterRequestManager);
393
//		viewRasterSelectPointTool = new SelectPointTool(viewRaster.getCanvas(), this);
394
//		
395
//		//Inicializaci?n de la ventana del zoom de la vista raster
396
//		zoomRaster = new ZoomPanelImpl(smallWindowsWidth + tableWidth, posYViews, smallWindowsWidth, smallWindowsHeight);
397
//		zoomRaster.setMinxMaxyUL(false);
398
//		zoomRaster.setShowInfo(true);
399
//		ViewRasterRequestManager zoomRasterRequestManager = new ViewRasterRequestManager(zoomRaster, lyrToGeoref);
400
//		zoomRaster.setExtensionRequest(zoomRasterRequestManager);
401
//		zoomRasterSelectPointTool = new SelectPointTool(zoomRaster.getCanvas(), this);
402
//		
403
//		//Inicializaci?n de la ventana del zoom de la vista de referencia
404
//		zoomMap = new ZoomPanelImpl(0, posYViews, smallWindowsWidth, smallWindowsHeight);
405
//		zoomMap.setShowInfo(true);
406
//		ViewMapRequestManager zoomMapRequestManager = new ViewMapRequestManager(zoomMap, mapControl);
407
//		zoomMap.setExtensionRequest(zoomMapRequestManager);
408
//		zoomMapSelectPointTool = new SelectPointTool(zoomMap.getCanvas(), this);
409
//					
410
//		//A?adimos las ventanas a gvSIG
411
//		PluginServices.getMDIManager().addWindow(viewRaster);
412
//		PluginServices.getMDIManager().addWindow(viewMap);
413
//		PluginServices.getMDIManager().addWindow(table);
414
//		PluginServices.getMDIManager().addWindow(zoomMap);
415
//		PluginServices.getMDIManager().addWindow(zoomRaster);
416
//		
417
//		layersPointManager.setViews(viewRaster, viewMap, zoomRaster, zoomMap);
418
//		layersPointManager.setTools(viewRasterSelectPointTool, viewMapSelectPointTool, zoomRasterSelectPointTool, zoomMapSelectPointTool);
419
//		layersPointManager.registerPointToolListener();
420
//		
421 363
//		viewsManager.setViews(viewRaster, viewMap, zoomRaster, zoomMap);
422 364
//		viewsManager.setRequestsManager(viewRasterRequestManager, viewMapRequestManager, zoomRasterRequestManager, zoomMapRequestManager);
423 365
//		viewsManager.setTablePanel(table);
424 366
//		
425
//		try {
426
//			viewMap.setCursorSize(zoomMap.getCanvasWidth() / ZOOM_RATIO, zoomMap.getCanvasHeight() / ZOOM_RATIO);
427
//			viewRaster.setCursorSize(zoomRaster.getCanvasWidth() / ZOOM_RATIO, zoomRaster.getCanvasHeight() / ZOOM_RATIO);
428
//			viewMap.setCursorPosition(viewMap.getCanvasWidth() / 2, viewMap.getCanvasHeight() / 2);
429
//			viewRaster.setCursorPosition(viewRaster.getCanvasWidth() / 2, viewRaster.getCanvasHeight() / 2);
430
//			
431
//			if(mapControl.getMapContext().getLayers().getFullExtent() == null)
432
//				RasterToolsUtil.messageBoxError("error_setview_preview", this);
433
//			
434
//			//Inicializamos la vista de mapa
435
//			viewMapRequestManager.initRequest(mapControl.getMapContext().getLayers().getFullExtent());
436
//			
437
//			//Inicializamos la vista de raster
438
//			viewRasterRequestManager.initRequest(lyrToGeoref.getFullExtent());
439
//			
440
//			//Inicializamos el zoom de mapa
441
//			Rectangle2D ext = viewMap.getCursorAdjustedWorldCoordinates(zoomMap.getCanvasWidth(), zoomMap.getCanvasHeight());
442
//			zoomMapRequestManager.initRequest(ext);
443
//			
444
//			//Inicializamos el zoom de raster
445
//			ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight());
446
//			zoomRasterRequestManager.initRequest(lyrToGeoref.getFullExtent());
447
//			zoomRasterRequestManager.request(ext);
448
//			
367
		try {
368
			viewMap.setCursorSize(zoomMap.getCanvasWidth() / ZOOM_RATIO, zoomMap.getCanvasHeight() / ZOOM_RATIO);
369
			viewRaster.setCursorSize(zoomRaster.getCanvasWidth() / ZOOM_RATIO, zoomRaster.getCanvasHeight() / ZOOM_RATIO);
370
			viewMap.setCursorPosition(viewMap.getCanvasWidth() / 2, viewMap.getCanvasHeight() / 2);
371
			viewRaster.setCursorPosition(viewRaster.getCanvasWidth() / 2, viewRaster.getCanvasHeight() / 2);
372
			
373
			if(getMapCtrl().getMapContext().getLayers().getFullEnvelope() == null)
374
				GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null);
375
			
376
			//Inicializamos la vista de mapa
377
			Envelope e = getMapCtrl().getMapContext().getLayers().getFullEnvelope();
378
			Rectangle2D r = new Rectangle2D.Double(e.getMinimum(0), e.getMinimum(1), e.getLength(0), e.getLength(1));
379
			viewMapRequestManager.initRequest(r);
380
			
381
			//Inicializamos la vista de raster
382
			viewRasterRequestManager.initRequest(store.getExtent().toRectangle2D());
383
			
384
			//Inicializamos el zoom de mapa
385
			Rectangle2D ext = viewMap.getCursorAdjustedWorldCoordinates(zoomMap.getCanvasWidth(), zoomMap.getCanvasHeight());
386
			zoomMapRequestManager.initRequest(ext);
387
			
388
			//Inicializamos el zoom de raster
389
			ext = viewRaster.getCursorAdjustedWorldCoordinates(zoomRaster.getCanvasWidth(), zoomRaster.getCanvasHeight());
390
			zoomRasterRequestManager.initRequest(store.getExtent().toRectangle2D());
391
			zoomRasterRequestManager.request(ext);
392
			
449 393
//			layersPointManager.createGCPPIxelLayer(viewRaster, viewRasterRequestManager, zoomRasterRequestManager);
450 394
//			layersPointManager.createGCPMapLayer(viewMap, viewMapRequestManager, zoomMapRequestManager);
451 395
//			
452
//		} catch (InvalidRequestException e1) {
453
//			RasterToolsUtil.messageBoxError("error_setview_preview", this, e1);
454
//			closeAllWindows();
455
//		}catch (Exception e1) {
456
//			RasterToolsUtil.messageBoxError("error_setview_preview", this, e1);
457
//			closeAllWindows();
458
//		}
396
		} catch (InvalidRequestException e1) {
397
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
398
			fManager.closeAllWindows();
399
		}catch (Exception e1) {
400
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", this, e1);
401
			fManager.closeAllWindows();
402
		}
459 403
	}
460 404
	
461 405
	/**
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/LauncherDialogListener.java
76 76
				if(storeToGeoref == null) 
77 77
					RasterToolsUtil.messageBoxError("layer_not_loaded", this);
78 78
				else {
79
					storeToGeoref.setAffineTransform(new AffineTransform(1, 0, 0, 1, 0, 0));
79
					//storeToGeoref.setAffineTransform(new AffineTransform(1, 0, 0, -1, 0, 0));
80 80
					GeoreferencingFrameworkManager fManager = GeoreferencingFrameworkLocator.getManager();
81 81
					fManager.closeWindow(initDialog.getComponent());
82
					if(dataModel.getType() == Georeferencing.WITH_MAP)
83
						app.initWindowsWithMap(dataModel);
84
					if(dataModel.getType() == Georeferencing.WITHOUT_MAP)
85
						app.initWindowsWithoutMap(dataModel);
82
					app.endLauncherDialog(dataModel);
86 83
				}
87 84
			}
88 85
		}
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
24 24
import java.awt.Color;
25 25
import java.awt.Dimension;
26 26
import java.awt.Graphics2D;
27
import java.awt.geom.AffineTransform;
28 27
import java.awt.geom.Point2D;
29 28
import java.awt.geom.Rectangle2D;
30 29
import java.awt.image.BufferedImage;
31 30

  
32 31
import org.gvsig.fmap.dal.coverage.RasterLocator;
33 32
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
34
import org.gvsig.fmap.dal.coverage.datastruct.ViewPortData;
35
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException;
36
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
37
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
38 33
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
39
import org.gvsig.fmap.dal.coverage.util.RasterUtils;
34
import org.gvsig.fmap.dal.exception.ReadException;
35
import org.gvsig.fmap.geom.GeometryLocator;
36
import org.gvsig.fmap.geom.GeometryManager;
37
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
38
import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
39
import org.gvsig.fmap.geom.primitive.Envelope;
40
import org.gvsig.fmap.mapcontext.ViewPort;
41
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException;
42
import org.gvsig.raster.fmap.layers.DefaultFLyrRaster;
43
import org.gvsig.raster.fmap.layers.FLyrRaster;
40 44
import org.gvsig.raster.georeferencing.swing.exception.InvalidRequestException;
41 45
import org.gvsig.raster.georeferencing.swing.impl.GeoreferencingSwingImplLibrary;
42 46
import org.gvsig.raster.georeferencing.swing.impl.layer.GCPsGraphicLayer;
......
48 52
 * @author Nacho Brodin (nachobrodin@gmail.com)
49 53
 */
50 54
public class ViewRasterRequestManager implements IExtensionRequest {
55
	private GeometryManager          geomManager       = GeometryLocator.getGeometryManager();
51 56
	private GeoreferencingView       view              = null;
52 57
	private RasterDataStore          store             = null;
53 58
	private IGraphicLayer            graphicLayer      = null;
54 59
	private Color                    backGroundColor   = null;
60
	private FLyrRaster               lyr               = null;
55 61
	
56 62
	/**
57 63
	 * Asigna la capa a georreferenciar de donde se obtienen los datos.
......
60 66
	public ViewRasterRequestManager(GeoreferencingView view, RasterDataStore store) {
61 67
		this.store = store;
62 68
		this.view = view;
69
		lyr = new DefaultFLyrRaster();
70
		try {
71
			((DefaultFLyrRaster)lyr).setDataStore(store);
72
		} catch (LoadLayerException e) {
73
			GeoreferencingSwingImplLibrary.messageBoxError("error_setview_preview", null, e);
74
		}
63 75
	}
64 76
	
65 77
	/**
......
86 98
		if(extent.getWidth() < extent.getHeight()) {
87 99
			if(((double)view.getCanvasWidth() / (double)view.getCanvasHeight()) <= (extent.getWidth() / extent.getHeight())) {
88 100
				h = (view.getCanvasHeight() * w) / view.getCanvasWidth();
89
				y = extent.getCenterY() - (h / 2);
101
				y = extent.getCenterY() + (h / 2);
90 102
			} else { //p1 < p2
91 103
				w = (view.getCanvasWidth() * h) / view.getCanvasHeight();
92 104
				x = extent.getCenterX() - (w / 2);
......
97 109
				x = extent.getCenterX() - (w / 2);
98 110
			} else { //p1 < p2
99 111
				h = (view.getCanvasHeight() * w) / view.getCanvasWidth();
100
				y = extent.getCenterY() - (h / 2);
112
				y = extent.getCenterY() + (h / 2);
101 113
			}
102 114
		}
103 115
		Rectangle2D r = new Rectangle2D.Double(x, y, w, h);
......
121 133
	}
122 134
	
123 135
	/**
124
	 * Ajusta la extensi?n del primer par?metro a los l?mites de la segunda
125
	 * @param extToAdj
126
	 * @param imgExt
127
	 * @return
128
	 */
129
	private Extent calculateAdjustedView(Extent extToAdj, Extent imgExt) { 
130
        double vx = extToAdj.minX();
131
        double vy = extToAdj.minY();
132
        double vx2 = extToAdj.maxX();
133
        double vy2 = extToAdj.maxY();
134

  
135
        if (extToAdj.minX() < imgExt.minX())
136
            vx = imgExt.minX();
137
        if (extToAdj.minY() < imgExt.minY()) 
138
            vy = imgExt.minY();
139
        if (extToAdj.maxX() > imgExt.maxX()) 
140
            vx2 = imgExt.maxX();
141
        if (extToAdj.maxY() > imgExt.maxY())
142
            vy2 = imgExt.maxY();
143
        
144
        return RasterLocator.getManager().getDataStructFactory().createExtent(vx, vy2, vx2, vy);
145
    }
146
	
147
	/**
148 136
	 * Obtiene el color de fondo
149 137
	 * @return
150 138
	 */
......
174 162
		}
175 163
							
176 164
		//Ajustamos el extent al del raster
177
		Extent ext = null;
178
		Extent extSelection = null;
179
		if(view.getCanvas().getMinxMaxyUL()) {
165
		Extent ext = RasterLocator.getManager().getDataStructFactory().createExtent(extent.getMinX(), extent.getMaxY(), extent.getMaxX(), extent.getMinY());
166
		/*if(view.getCanvas().getMinxMaxyUL()) {
180 167
			ext = RasterLocator.getManager().getDataStructFactory().createExtent(extent);
181
			extSelection = calculateAdjustedView(ext, store.getExtent());
182 168
		} else {
183 169
			ext = RasterLocator.getManager().getDataStructFactory().createExtent(extent.getMinX(), extent.getMinY(), extent.getMaxX(), extent.getMaxY());
184
			RasterUtils rasterUtil = RasterLocator.getManager().getRasterUtils();
185
		    extSelection = rasterUtil.calculateAdjustedView(ext, store.getExtent());
186
		}
170
		}*/
187 171
		
188
		//Obtenemos el viewport y calculamos la matriz de transformaci?n
189
		ViewPortData vp = RasterLocator.getManager().createViewPortData();
190
		vp.setExtent(ext);
191
		vp.setSize(new Dimension(view.getCanvasWidth(), view.getCanvasHeight()));
192
		vp.calculateAffineTransform();
193
		
194
		//Calculamos el punto del canvas de la vista donde se empieza a dibujar el buffer de la imagen
195
		Point2D pt = new Point2D.Double(extSelection.getULX(), extSelection.getULY());
196
		AffineTransform at = vp.getMat();
197
		if(!view.getCanvas().getMinxMaxyUL()) {
198
			at = new AffineTransform(1, 0, 0, -1, 0, 0);
199
			at.concatenate(vp.getMat());
200
		}
201
		at.transform(pt, pt);
202
		
203 172
		try {
173
			ViewPort vp = new ViewPort();
174
			vp.setImageSize(new Dimension(view.getCanvasWidth(), view.getCanvasHeight()));
175
			Envelope env = geomManager.createEnvelope(ext.getMin().getX(), ext.getMin().getY(), ext.getMax().getX(), ext.getMax().getY(), SUBTYPES.GEOM2D);
176
			vp.setEnvelope(env);
177
			
204 178
			//Dibujamos a trav?s del render de la capa en un graphics como el de la vista
205
			BufferedImage initImg = new BufferedImage(view.getCanvasWidth(), view.getCanvasHeight(), BufferedImage.TYPE_INT_RGB);
179
			BufferedImage initImg = new BufferedImage(view.getCanvasWidth(), view.getCanvasHeight(), BufferedImage.TYPE_INT_ARGB);
206 180
			Graphics2D g2d = ((Graphics2D)initImg.getGraphics());
207 181
			if(backGroundColor != null && backGroundColor != Color.BLACK) {
208 182
				g2d.setColor(backGroundColor);
209 183
				g2d.fillRect(0, 0, view.getCanvasWidth(), view.getCanvasHeight());
210 184
			}
211
			BufferedImage drawedImg = (BufferedImage)store.getRender().draw(g2d, vp, null);
212
			g2d.drawImage(drawedImg, (int) Math.round(pt.getX()), (int) Math.round(pt.getY()), null);
185
			lyr.draw(initImg, g2d, vp, null, 1);
213 186
		
214 187
			setDrawParams(initImg, extent);
215 188
			
216 189
			if(graphicLayer != null)
217 190
				graphicLayer.recalcPixelDrawCoordinates();
218 191
			
219
		} catch (RasterDriverException e) {
192
		} catch (ReadException e) {
220 193
			throw new InvalidRequestException("Error en al acceso al fichero", e);
221
		} catch (InvalidSetViewException e) {
194
		} catch (CreateEnvelopeException e) {
222 195
			throw new InvalidRequestException("Error asignando el ?rea de la petici?n", e);
223
		} catch (ProcessInterruptedException e) {
224 196
		}
225 197
		return extent;
226 198
	}
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app/org.gvsig.raster.georeferencing.app.georeferencingclient/pom.xml
54 54
        <dependency>
55 55
            <groupId>org.gvsig</groupId>
56 56
            <artifactId>org.gvsig.raster.georeferencing.swing.impl</artifactId>
57
            <scope>runtime</scope>
57
            <scope>compile</scope>
58 58
        </dependency>
59 59
        <dependency>
60 60
			<groupId>org.gvsig</groupId>
......
78 78
        </dependency>
79 79
        <dependency>
80 80
            <groupId>org.gvsig</groupId>
81
            <artifactId>org.gvsig.fmap.geometry</artifactId>
82
            <scope>compile</scope>
83
        </dependency>
84
        <dependency>
85
            <groupId>org.gvsig</groupId>
81 86
            <artifactId>org.gvsig.fmap.dal</artifactId>
82 87
            <classifier>spi</classifier>
83 88
            <scope>compile</scope>
org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.swing/org.gvsig.raster.georeferencing.swing.api/src/main/java/org/gvsig/raster/georeferencing/swing/view/GeorefCanvas.java
174 174
	 * de ser false esta esquina ser?a de m?nimo X y m?nimo Y.
175 175
	 * @param v
176 176
	 */
177
	public void setMinxMaxyUL(boolean v);
177
	//public void setMinxMaxyUL(boolean v);
178 178
	
179 179
	/**
180 180
	 * Obtiene el valor para el flag minxMaxyUL. Este flag informa de que la esquina 
......
182 182
	 * de ser false esta esquina ser?a de m?nimo X y m?nimo Y.
183 183
	 * @param v
184 184
	 */
185
	public boolean getMinxMaxyUL();
185
	//public boolean getMinxMaxyUL();
186 186

  
187 187
	/**
188 188
	 * Asigna el color del texto
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/DefaultGeoreferencingSwingManager.java
110 110
			boolean rightSideButtons,
111 111
			ToolListener toolListener) {
112 112
		ViewPanelImpl v = new ViewPanelImpl(toolListener, rightSideButtons);
113
		v.setMinxMaxyUL(minMaxUL);
113
		//v.setMinxMaxyUL(minMaxUL);
114 114
		v.setShowInfo(showInfo);
115 115
		return v;
116 116
	}
......
119 119
			boolean showInfo, 
120 120
			boolean minMaxUL) {
121 121
		ZoomPanelImpl v = new ZoomPanelImpl();
122
		v.setMinxMaxyUL(minMaxUL);
122
		//v.setMinxMaxyUL(minMaxUL);
123 123
		v.setShowInfo(showInfo);
124 124
		return v;
125 125
	}
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/ZoomPanelImpl.java
53 53
	 * de ser false esta esquina ser?a de m?nimo X y m?nimo Y.
54 54
	 * @param v
55 55
	 */
56
	public void setMinxMaxyUL(boolean v) {
56
	/*public void setMinxMaxyUL(boolean v) {
57 57
		getCanvas().setMinxMaxyUL(v);
58
	}
58
	}*/
59 59
	
60 60
	/**
61 61
	 * Activa o desactiva el mostrado de informaci?n
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/CanvasZone.java
76 76
     * Informa de que la esquina superior izquierda corresponde con el valor de m?nimo X y
77 77
     * m?ximo Y. En caso de ser false esta esquina ser?a de m?nimo X y m?nimo Y.
78 78
     */
79
    private boolean                minxMaxyUL           = true;
79
    //private boolean                minxMaxyUL           = true;
80 80
    		
81 81
    private Color                  backgroundColor      = Color.BLACK;
82 82
    private Color                  textColor            = Color.RED;
......
140 140
		int h = getVisibleRect().height;
141 141
		double cx = extent.getMinX() + ((p.getX() * extent.getWidth()) / w);
142 142
		double cy = 0;
143
		if(minxMaxyUL) //Cuando las Y decrecen de arriba a abajo
143
		//if(minxMaxyUL) //Cuando las Y decrecen de arriba a abajo
144 144
			cy = extent.getMaxY() - (p.getY() * extent.getHeight()) / h;
145
		else //Cuando las Y crecen de arriba a abajo
146
			cy = extent.getMinY() + (p.getY() * extent.getHeight()) / h;
145
		//else //Cuando las Y crecen de arriba a abajo
146
			//cy = extent.getMinY() + (p.getY() * extent.getHeight()) / h;
147 147
		return new Point2D.Double(cx, cy);
148 148
	}
149 149
	
......
157 157
		int h = getVisibleRect().height;
158 158
		double cx = ((p.getX() - extent.getMinX()) * w) / extent.getWidth();
159 159
		double cy = 0;
160
		if(minxMaxyUL) //Cuando las Y decrecen de arriba a abajo
160
		//if(minxMaxyUL) //Cuando las Y decrecen de arriba a abajo
161 161
			cy = ((extent.getMaxY() - p.getY()) * h) / extent.getHeight();
162
		else //Cuando las Y crecen de arriba a abajo
163
			cy = ((p.getY() - extent.getMinY()) * h) / extent.getHeight();
162
		//else //Cuando las Y crecen de arriba a abajo
163
			//cy = ((p.getY() - extent.getMinY()) * h) / extent.getHeight();
164 164
		return new Point2D.Double(cx, cy);
165 165
	}
166 166
	
......
553 553
	 * de ser false esta esquina ser?a de m?nimo X y m?nimo Y.
554 554
	 * @param v
555 555
	 */
556
	public void setMinxMaxyUL(boolean v) {
556
	/*public void setMinxMaxyUL(boolean v) {
557 557
		this.minxMaxyUL = v;
558
	}
558
	}*/
559 559
	
560 560
	/**
561 561
	 * Obtiene el valor para el flag minxMaxyUL. Este flag informa de que la esquina 
......
563 563
	 * de ser false esta esquina ser?a de m?nimo X y m?nimo Y.
564 564
	 * @param v
565 565
	 */
566
	public boolean getMinxMaxyUL() {
566
	/*public boolean getMinxMaxyUL() {
567 567
		return minxMaxyUL;
568
	}
568
	}*/
569 569

  
570 570
	/**
571 571
	 * Asigna el color del texto
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/SynchronizedViewsImpl.java
377 377
	}
378 378
	
379 379
	public void createGCPLayers() {
380
		viewRasterGCPs = new GCPsGraphicLayer(GPGraphic.PIXEL, toolListener);
381
		viewRasterGCPs.setCanvas(viewRaster.getCanvas());
382
		viewRaster.addGraphicLayer(viewRasterGCPs);
383
		//viewRasterRequestManager.setGCPsGraphicLayer(viewRasterGCPs);
380
		if(viewRaster != null) {
381
			viewRasterGCPs = new GCPsGraphicLayer(GPGraphic.PIXEL, toolListener);
382
			viewRasterGCPs.setCanvas(viewRaster.getCanvas());
383
			viewRaster.addGraphicLayer(viewRasterGCPs);
384
			//viewRasterRequestManager.setGCPsGraphicLayer(viewRasterGCPs);
385
		}
384 386
		
385
		viewRasterGCPsZoom = new GCPsGraphicLayer(GPGraphic.PIXEL, toolListener);
386
		viewRasterGCPsZoom.setCanvas(zoomRaster.getCanvas());
387
		zoomRaster.addGraphicLayer(viewRasterGCPsZoom);
388
		//zoomRasterRequestManager.setGCPsGraphicLayer(viewRasterGCPsZoom);
387
		if(zoomRaster != null) {
388
			viewRasterGCPsZoom = new GCPsGraphicLayer(GPGraphic.PIXEL, toolListener);
389
			viewRasterGCPsZoom.setCanvas(zoomRaster.getCanvas());
390
			zoomRaster.addGraphicLayer(viewRasterGCPsZoom);
391
			//zoomRasterRequestManager.setGCPsGraphicLayer(viewRasterGCPsZoom);
392
		}
389 393
		
390
		viewMapGCPs = new GCPsGraphicLayer(GPGraphic.MAP, toolListener);
391
		viewMapGCPs.setCanvas(viewMap.getCanvas());
392
		viewMap.addGraphicLayer(viewMapGCPs);
393
		//viewMapRequestManager.setGCPsGraphicLayer(viewMapGCPs);
394
		if(viewMap != null) {
395
			viewMapGCPs = new GCPsGraphicLayer(GPGraphic.MAP, toolListener);
396
			viewMapGCPs.setCanvas(viewMap.getCanvas());
397
			viewMap.addGraphicLayer(viewMapGCPs);
398
			//viewMapRequestManager.setGCPsGraphicLayer(viewMapGCPs);
399
		}
394 400
		
395
		viewMapGCPsZoom = new GCPsGraphicLayer(GPGraphic.MAP, toolListener);
396
		viewMapGCPsZoom.setCanvas(zoomMap.getCanvas());
397
		zoomMap.addGraphicLayer(viewMapGCPsZoom);
398
		//zoomMapRequestManager.setGCPsGraphicLayer(viewMapGCPsZoom);
401
		if(zoomMap != null) {
402
			viewMapGCPsZoom = new GCPsGraphicLayer(GPGraphic.MAP, toolListener);
403
			viewMapGCPsZoom.setCanvas(zoomMap.getCanvas());
404
			zoomMap.addGraphicLayer(viewMapGCPsZoom);
405
			//zoomMapRequestManager.setGCPsGraphicLayer(viewMapGCPsZoom);
406
		}
399 407
	}
400 408
	
401 409
	/**
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/ViewPanelImpl.java
85 85
	 * de ser false esta esquina ser?a de m?nimo X y m?nimo Y.
86 86
	 * @param v
87 87
	 */
88
	public void setMinxMaxyUL(boolean v) {
88
	/*public void setMinxMaxyUL(boolean v) {
89 89
		getCanvas().setMinxMaxyUL(v);
90
	}
90
	}*/
91 91
	
92 92
	/**
93 93
	 * Asigna un nuevo centro de visualizaci?n. Vuelve a realizar la petici?n
......
231 231
			LoggerFactory.getLogger(ViewPanelImpl.class).debug("Redimensi?n de las ventanas. La altura de estas es menor que cero", this, ex);
232 232
			return r;
233 233
		}
234
		if(zoomPixelControl.getCanvas().getMinxMaxyUL())
234
		//if(zoomPixelControl.getCanvas().getMinxMaxyUL())
235 235
			r = new Rectangle2D.Double(x, y + h, w, h);
236
		else
237
			r = new Rectangle2D.Double(x, y - h, w, h);
236
		//else
237
			//r = new Rectangle2D.Double(x, y - h, w, h);
238 238
		Point2D p1 = zoomPixelControl.getCanvas().viewCoordsToWorld(new Point2D.Double(r.getX(), r.getY()));
239 239
		Point2D p2 = zoomPixelControl.getCanvas().viewCoordsToWorld(new Point2D.Double(r.getX() + r.getWidth(), r.getY() + r.getHeight()));
240 240
		return new Rectangle2D.Double(	Math.min(p1.getX(), p2.getX()), 
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/tool/ZoomRectangleTool.java
152 152
			
153 153
			Point2D pInit = canvas.viewCoordsToWorld(new Point2D.Double(x, y));
154 154
			Point2D pEnd = canvas.viewCoordsToWorld(new Point2D.Double(x + w, y + h));
155
			if(canvas.getMinxMaxyUL())
155
			/*if(canvas.getMinxMaxyUL())
156 156
				result = new Rectangle2D.Double(pInit.getX(), pEnd.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY()));
157
			else
158
				result = new Rectangle2D.Double(pInit.getX(), pInit.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY()));
157
			else*/
158
			result = new Rectangle2D.Double(pInit.getX(), pEnd.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY()));
159 159
			initPoint = null;
160 160
			x = y = w = h = 0;
161 161
			for (int i = 0; i < listeners.size(); i++) 
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/tool/PanTool.java
108 108
			
109 109
			Point2D pInit = canvas.viewCoordsToWorld(new Point2D.Double(distance.getX(), distance.getY()));
110 110
			Point2D pEnd = canvas.viewCoordsToWorld(new Point2D.Double(distance.getX() + canvas.getVisibleRect().width, distance.getY() + canvas.getVisibleRect().height));
111
			if(canvas.getMinxMaxyUL())
111
			//if(canvas.getMinxMaxyUL())
112 112
				result = new Rectangle2D.Double(pInit.getX(), pEnd.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY()));
113
			else
114
				result = new Rectangle2D.Double(pInit.getX(), pInit.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY()));
113
			//else
114
				//result = new Rectangle2D.Double(pInit.getX(), pInit.getY(), Math.abs(pInit.getX() - pEnd.getX()), Math.abs(pInit.getY() - pEnd.getY()));
115 115
			initPoint = null;
116 116
			for (int i = 0; i < listeners.size(); i++) 
117 117
				((ToolListener)listeners.get(i)).endAction(new ToolEvent(this));

Also available in: Unified diff