Revision 5550 trunk/extensions/extGeoreferencing/src/org/gvsig/georeferencing/gui/panels/ZoomControlPanel.java

View differences:

ZoomControlPanel.java
26 26
import javax.swing.JPanel;
27 27

  
28 28
import org.gvsig.georeferencing.gui.dialogs.GeoreferencingDialog;
29
import org.gvsig.georeferencing.utils.MathUtils;
29 30

  
30 31
import com.iver.andami.PluginServices;
31 32
import com.iver.cit.gvsig.fmap.DriverException;
......
61 62
    /**
62 63
	 * Estado de los botones cuando se ejecuta disableAllControls
63 64
	 */
64
	private boolean[] 					buttonsState = new boolean[2];
65
	private boolean[] 				buttonsState = new boolean[2];
65 66
	/**
66 67
	 * DisableAllControls ha sido ejecutada si est? a true esta variabled
67 68
	 */
68
	private boolean 					disableAllControls = false;
69
	private boolean 				disableAllControls = false;
70
	/**
71
	 * Factor multiplicador cuando hacemos zoom mas
72
	 */
73
	private double					zoomMas = 0.6;
74
	/**
75
	 * Factor multiplicador cuando hacemos zoom menos
76
	 */
77
	private double					zoomMenos = 1.8;
69 78
	//**********************End Vars******************************
70 79
    
71 80
	//**********************Methods*******************************
......
136 145
	 * Manejo de los controles zoom m?s y zoom menos
137 146
	 */
138 147
	public void actionPerformed(ActionEvent e) {
139
		if(e.getSource() == bZoomMas){
140
			canvas.calcZoom(0.6);
141
			canvas.draw = true;
142
			canvas.repaint();
143
		}
148
		double zoom = zoomMas;
144 149
		
150
		if(e.getSource() == bZoomMas)
151
			canvas.calcZoom(zoomMas);
152
		
145 153
		if(e.getSource() == bZoomMenos){
146
			canvas.calcZoom(1.8);
147
	    	canvas.draw = true;
148
			canvas.repaint();
154
			canvas.calcZoom(zoomMenos);
155
			zoom = zoomMenos;
149 156
		}
157
	    
158
		canvas.draw = true;
159
		canvas.repaint();
160
		if(isRightControl())
161
			lyrPoints.getPoint(dialog.getSelectedPoint()).zoomLeft *= zoom;
162
		else
163
			lyrPoints.getPoint(dialog.getSelectedPoint()).zoomRight *= zoom;
150 164
		
165
		lyrPoints.showPoints();
151 166
	}
152 167
	    
153 168
    /**
......
194 209
    /**
195 210
	 * @param viewPort The viewPort to set.
196 211
	 */
197
	public void setViewPort(ViewPort viewPort) {
212
	public void setViewPort(ViewPort viewPort, double zoom) {
198 213
		this.viewPort = viewPort;
199
		getCanvas().setViewPort(this.viewPort);
214
		getCanvas().setViewPort(this.viewPort, zoom);
200 215
	}
201 216
	
202 217
	/**
......
388 403
    	this.getCanvas().setEnableEvent(enabled);
389 404
    }
390 405
	
406
    /**
407
     * Obtiene el modificador de escala aplicado a zoom m?s
408
     * @return
409
     */
410
    public double getZoomMas() {
411
		return zoomMas;
412
	}
413

  
414
    /**
415
     * Obtiene el modificador de escala aplicado a zoom m?s
416
     * @return
417
     */
418
    public double getZoomMenos() {
419
		return zoomMenos;
420
	}
421
    
391 422
	//**********************End Setters & Getters*****************
392 423
	/**
393 424
	 * Control que representa la zona de dibujado de la ventana. Este se encarga de
......
433 464
	     * Esta variable se usa para informar cuando debe recargarse el buffer de las miniimagenes. Si siempre
434 465
	     * est? a true no para de llamar al draw de FLyers para que pinte sobre el minicanvas.
435 466
	     */
436
	    public	boolean				draw = true;
467
	    public boolean				draw = true;
468
	    public boolean				drawPoint = true;
469
	    
437 470
		//**********************End Vars******************************
438 471
	    
439 472
	    //**********************Classes*******************************
......
484 517
			newViewPort.setScale();
485 518
		}
486 519
	
487
	    
488 520
	    /**
489
	     *Calculamos el viewPort para el zoom de la minimagen
521
	     * Calculamos el viewPort para el zoom de la minimagen
522
	     * @param vp		ViewPort inicial
523
	     * @param center	Centro del ViewPort a calcular.
524
	     * @param vpDest	ViewPort de destino. Si este es null se crear? un nuevo ViewPort sino se asignar?n los cambios a este.
525
	     * @return
490 526
	     */
491
	    public ViewPort initViewPort(ViewPort vp, Point2D center, ViewPort vpDest){
492
	    	if(center != null){
493
	    			    		
527
	    public ViewPort initViewPort(ViewPort vp, Point2D center, ViewPort vpDest, double zoom){
528
	    	if(center != null){	    		
494 529
	        	//Hallamos la relaci?n entre el pixel y las WC a partir de la imagen de la capa
495 530
				double relacionPixelWcWidth =  ((vp.getExtent().getMaxX() - vp.getExtent().getMinX()) / initZoom) / ancho;
496 531
				double relacionPixelWcHeight = ((vp.getExtent().getMaxY() - vp.getExtent().getMinY()) / initZoom) / alto;
......
513 548
	        		newViewPort.setExtent(ext);
514 549
	        		newViewPort.setImageSize(new java.awt.Dimension(ancho, alto));	
515 550
	        		newViewPort.setScale();
551
	        		if(zoom != 1 && zoom != 0)
552
	        			newViewPort = MathUtils.calcZoom(newViewPort, zoom);
516 553
	        		return newViewPort;
517 554
	    		}else{
518 555
	    			vpDest.setExtent(ext);
519 556
	    			vpDest.setScale();
557
	    			if(zoom != 1 && zoom != 0)
558
	        			vpDest = MathUtils.calcZoom(vpDest, zoom);
520 559
	    			return vpDest;
521 560
	    		}
522 561
	    		
......
537 576
			gTmp.fillRect( 0,0,ancho,alto );
538 577
		        
539 578
		    try{     		       
540
			     if(newViewPort != null){
541
			       	if(zoomControl.getNumberPoint() != -1){//Salvamos el miniextent si hay puntos en la lista
542
			        	if(!zoomControl.isRightControl())
543
			        		zoomControl.getLyrPoints().setMiniExtent(zoomControl.getNumberPoint(), 
544
			        												centerPoint,
545
																	newViewPort, 
546
																	true);
547
			        	else
548
			        		zoomControl.getLyrPoints().setMiniExtent(zoomControl.getNumberPoint(), 
549
																	centerPoint,
550
																	newViewPort, 
551
																	false);
552
			        }				        	
579
			     if(newViewPort != null){	        	
553 580
			       	//Si no tenemos las capas las cargamos
554 581
			       	if(flayers == null){
555 582
			       		View  theView = null;
......
859 886
	     * Asigna el viewPort
860 887
	     * @param vp ViewPort
861 888
	     */
862
	    public void setViewPort(ViewPort vp){
863
	    	this.initViewPort(vp, this.centerPoint, null);
889
	    public void setViewPort(ViewPort vp, double zoom){
890
	    	this.initViewPort(vp, this.centerPoint, null, zoom);
864 891
	    }
865 892

  
866 893
	    /**
......
894 921
		public void setEnableEvent(boolean enableEvent) {
895 922
			this.enableEvent = enableEvent;
896 923
		}
924
		
897 925
		//**********************End Setters & Getters*****************
898 926
		
899 927
	}

Also available in: Unified diff