Revision 3049 trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/gui/Panels/ZoomControlPanel.java

View differences:

ZoomControlPanel.java
56 56
    public FLyrPoints lyrPoints = null;
57 57
    public FLyrGeoRaster lyrGeoRaster = null;
58 58
    public GeoreferencingDialog dialog = null;
59
    private boolean rightControl = false;
59 60
    
60 61
   
61 62
    
......
64 65
	 */
65 66
	public ZoomControlPanel(boolean rightControl) {
66 67
		super();
68
		this.rightControl = rightControl;
67 69
		initialize(rightControl);
68 70
	}
69 71

  
......
203 205
	public void draw(){
204 206
		if(canvas != null){
205 207
			canvas.setViewPort(this.viewPort);
206
			canvas.repaint();//.update();
208
			canvas.repaint();
207 209
		}
208 210
	}
209 211
	
......
263 265
	
264 266

  
265 267
	/**
268
	 * @return Returns the rightControl.
269
	 */
270
	public boolean isRightControl() {
271
		return rightControl;
272
	}
273
	
274
	/**
266 275
	 * @return Returns the lyrGeoRaster.
267 276
	 */
268 277
	public FLyrGeoRaster getLyrGeoRaster() {
......
378 387
	    	if(!dragged){
379 388
		    	dbGraphics.setColor( Color.WHITE );
380 389
		    	dbGraphics.fillRect( 0,0,ancho,alto );
390
		    	gTmp.setColor( Color.WHITE );
391
				gTmp.fillRect( 0,0,ancho,alto );
381 392
		        
382 393
		        try{     		       
383 394
			        if(newViewPort != null){
......
462 473
			
463 474
		}
464 475
		
465
		/* (non-Javadoc)
466
		 * @see java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
476
		/**
477
		 * Al pulsar el rat?n sobre la minimagen permitimos que se pueda desplazar la cruz
478
		 * 
467 479
		 */
468 480
		public void mousePressed(MouseEvent ev) {
469
			ptoIni = ev.getPoint();
481
			this.movDragged = ptoIni = ev.getPoint();
470 482
			zoomControl.loadLayer();
471 483
			initCrux = new Point2D.Double();
472
			initCrux.setLocation(this.getWidth() / 2, this.getHeight() / 2);//zoomControl.lyrPoints.getPoint(zoomControl.getNumberPoint() - 1).mapPoint;
473
			
484
			initCrux.setLocation(this.getWidth() / 2, this.getHeight() / 2);
474 485
			this.dragged = true;
475 486
			repaint();
476 487
		}
......
483 494
			ViewPort viewPort = theView.getMapControl().getMapContext().getViewPort();
484 495
			ptoFin = ev.getPoint();
485 496
			this.dragged = false;
486
			
487
			double destX = (ptoFin.getX() * centerPoint.getX()) / ptoIni.getX(); 
488
			double destY = (ptoFin.getY() * centerPoint.getY()) / ptoIni.getY();
497

  
498
			double destX = newViewPort.getExtent().getMinX() + ((ptoFin.getX() * (centerPoint.getX() - newViewPort.getExtent().getMinX())) / ptoIni.getX()); 
499
			double destY = newViewPort.getExtent().getMinY() + (((this.getHeight() - ptoFin.getY()) * (centerPoint.getY() - newViewPort.getExtent().getMinY())) / (this.getHeight() - ptoIni.getY()));
500
						
489 501
			if(flayers == null)
490 502
        	 	flayers = theView.getMapControl().getMapContext().getLayers();
491 503
        	 for(int i=0;i<flayers.getLayersCount();i++){
492 504
        		 FLayer lyr = flayers.getLayer(i);
493 505
        		 if(lyr instanceof FLyrPoints){
494 506
        			 FLyrPoints lp = (FLyrPoints)lyr;
495
        			 Point2D pixelImg = zoomControl.getLyrGeoRaster().world2Img(destX, destY);
496
        			 if(pixelImg == null){
497
     					JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
498
     							PluginServices.getText(this, "fuera_de_extent"));
499
     					return;
500
     				 }
501 507
        			 
502
        			 Point2D map = new Point2D.Double();
503
        			 map.setLocation(destX, destY);
504
        			 lp.updatePoint(pixelImg, map, zoomControl.getNumberPoint() - 1);
505
        			 System.out.println("===>"+pixelImg.getX()+" "+pixelImg.getY()+" "+map.getX()+" "+map.getY());
506
        			 //Actualizamos la ventana
507
        			 zoomControl.getDialog().setPixelText(pixelImg.getX(), pixelImg.getY());
508
        			 zoomControl.getDialog().setMapCoordText(map.getX(), map.getY());
508
        			 if(zoomControl.isRightControl()){ //Control de actualizaci?n de pixel de imagen
509
	        			 Point2D pixelImg = zoomControl.getLyrGeoRaster().world2Img(destX, destY);
510
	        			 
511
	        			 if(pixelImg == null){
512
	     					JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
513
	     							PluginServices.getText(this, "fuera_de_extent"));
514
	     					return;
515
	     				 }
516
	        			 zoomControl.getLyrGeoRaster().updateData(	Integer.valueOf(zoomControl.getDialog().getSelectPointsPanel().getTableControlerPanel().getCPoint().getSelectedItem().toString()).intValue(),
517
	        			 											pixelImg, 
518
																	null, 
519
																	zoomControl.getDialog(),
520
																	theView, 
521
																	lp);
522
        			 }else{ //Control de actualizaci?n de coordenadas del mundo
523
        			 	 Point2D mapPoint = new Point2D.Double();
524
        			 	 mapPoint.setLocation(destX, destY);
525
        			 	 zoomControl.getLyrGeoRaster().updateData(	Integer.valueOf(zoomControl.getDialog().getSelectPointsPanel().getTableControlerPanel().getCPoint().getSelectedItem().toString()).intValue(),
526
																	null, 
527
																	mapPoint, 
528
																	zoomControl.getDialog(),
529
																	theView, 
530
																	lp);
531
        			 }
509 532
        		 }
510 533
        	 }
511 534
        	 

Also available in: Unified diff