Revision 3049

View differences:

trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/fmap/layers/FLyrGeoRaster.java
40 40
 */
41 41
package com.iver.cit.gvsig.fmap.layers;
42 42

  
43
import java.awt.Component;
44 43
import java.awt.Graphics2D;
45 44
import java.awt.geom.Point2D;
46 45
import java.awt.geom.Rectangle2D;
47 46
import java.awt.image.BufferedImage;
48 47

  
49
import javax.swing.JOptionPane;
50

  
51 48
import org.cresques.px.Extent;
52 49

  
53
import com.iver.andami.PluginServices;
54 50
import com.iver.cit.gvsig.StackZoom;
55 51
import com.iver.cit.gvsig.fmap.DriverException;
56 52
import com.iver.cit.gvsig.fmap.ViewPort;
57 53
import com.iver.cit.gvsig.fmap.operations.Cancellable;
54
import com.iver.cit.gvsig.gui.View;
58 55
import com.iver.cit.gvsig.gui.Dialogs.GeoreferencingDialog;
56
import com.iver.cit.gvsig.gui.Panels.ZoomControlPanel;
57
import com.iver.cit.gvsig.gui.Panels.TablePointsPanel.PointTable;
59 58

  
60 59

  
61 60
/**
......
405 404
	public void setGeoDialog(GeoreferencingDialog geoDialog) {
406 405
		this.geoDialog = geoDialog;
407 406
	}
407
	
408
	/**
409
	 * A partir de nuevas coordenadas actualiza la vista, minimagen, capa de puntos el
410
	 * dialogo y la tabla.
411
	 *
412
	 */
413
	public void updateData(int nPunto, Point2D pixel, Point2D map, GeoreferencingDialog dialog, View vista, FLyrPoints plyr){
414
		if(dialog == null || vista == null || plyr == null)
415
			return;
416
		if(pixel == null && map == null)
417
			return;
418
		
419
		//Actualizamos los textBox
420
		if(pixel != null){
421
			dialog.setPixelText(pixel.getX(), pixel.getY());
422
			dialog.getConectorPanel().getDataPointsTabPanel().getSelectPointsPanel().lastTx = String.valueOf(pixel.getX());
423
			dialog.getConectorPanel().getDataPointsTabPanel().getSelectPointsPanel().lastTy = String.valueOf(pixel.getY());
424
		}
425
		if(map != null){
426
			dialog.setMapCoordText(map.getX(), map.getY());
427
			dialog.getConectorPanel().getDataPointsTabPanel().getSelectPointsPanel().lastLong = String.valueOf(map.getX());
428
			dialog.getConectorPanel().getDataPointsTabPanel().getSelectPointsPanel().lastLat = String.valueOf(map.getX());
429
		}
430
		
431
		//Actualizamos la tabla
432
		PointTable pointsTable = dialog.getConectorPanel().getDataPointsTabPanel().getTablePointsPanel().getJTable();
433
		if(pointsTable.getTable().getRowCount() < nPunto){
434
			pointsTable.getTableModel().addNew();
435
			pointsTable.getTableModel().setValueAt(String.valueOf(nPunto - 1),nPunto - 1,0);
436
		}
437
		if(pixel != null){	
438
			pointsTable.getTableModel().setValueAt(String.valueOf(pixel.getX()),nPunto - 1,1);
439
			pointsTable.getTableModel().setValueAt(String.valueOf(pixel.getY()),nPunto - 1,2);
440
		}
441
		if(map != null){
442
			pointsTable.getTableModel().setValueAt(String.valueOf(map.getX()),nPunto - 1,3);
443
			pointsTable.getTableModel().setValueAt(String.valueOf(map.getY()),nPunto - 1,4);
444
		}
445
		
446
		//Actualizamos la miniimagen
447
		ViewPort viewPort = vista.getMapControl().getMapContext().getViewPort();
448
		if(pixel != null){
449
			dialog.getConectorPanel().getAdjustGeorefPanel().getZoomLeft().setCenterPoint(this.img2World(pixel));
450
			dialog.getConectorPanel().getAdjustGeorefPanel().setNumberPoint(nPunto);
451
			dialog.getConectorPanel().getAdjustGeorefPanel().setViewPort(viewPort);
452
			dialog.getConectorPanel().getAdjustGeorefPanel().getZoomLeft().draw();
453
		}
454
		
455
		if(map != null){
456
			dialog.getConectorPanel().getAdjustGeorefPanel().getZoomRight().setCenterPoint(map);
457
			dialog.getConectorPanel().getAdjustGeorefPanel().setNumberPoint(nPunto);
458
			dialog.getConectorPanel().getAdjustGeorefPanel().setViewPort(viewPort);
459
			dialog.getConectorPanel().getAdjustGeorefPanel().getZoomRight().draw();
460
		}
461
		
462
		//Actualizamos la capa de puntos
463
		plyr.updatePoint(pixel, map, nPunto - 1);
464
				
465
		//Actualizamos la vista
466
		vista.getMapControl().getMapContext().invalidate();	
467
	}
468
	
469
	/**
470
	 * Carga los datos de un n?mero de punto determinado. Actualizar? las mini imagenes y los textField.
471
	 * @param nPunto N?mero de punto a cargar
472
	 */
473
	public void loadPointData(int nPunto, GeoreferencingDialog dialog, View vista, FLyrPoints plyr){
474
		
475
	}
476
	
408 477
}
trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/gui/Panels/SelectPointsPanel.java
6 6
import java.awt.GridBagLayout;
7 7
import java.awt.event.ActionEvent;
8 8
import java.awt.event.ActionListener;
9
import java.awt.event.FocusEvent;
10
import java.awt.event.FocusListener;
9 11
import java.awt.event.KeyEvent;
10 12
import java.awt.event.KeyListener;
11 13
import java.awt.geom.Point2D;
......
19 21

  
20 22
import com.iver.andami.PluginServices;
21 23
import com.iver.cit.gvsig.fmap.layers.FLayer;
24
import com.iver.cit.gvsig.fmap.layers.FLyrGeoRaster;
22 25
import com.iver.cit.gvsig.fmap.layers.FLyrPoints;
23 26
import com.iver.cit.gvsig.fmap.layers.FLyrPoints.GeoPoint;
24 27
import com.iver.cit.gvsig.gui.View;
25 28
import com.iver.cit.gvsig.gui.Dialogs.GeoreferencingDialog;
26 29
import com.iver.cit.gvsig.gui.toolListeners.GeorefPointerListener;
27 30

  
28
public class SelectPointsPanel extends JPanel implements ActionListener, KeyListener{
31
public class SelectPointsPanel extends JPanel implements ActionListener, KeyListener, FocusListener{
29 32

  
30 33
	private JPanel pGeneral = null;
31 34
	private JPanel pPointSelection = null;
......
64 67
	private GeoreferencingDialog grd = null;
65 68
	
66 69
	private JLabel jLabel = null;
70
	/**
71
	 * Valores ?ltimos que se han introducido en los JTextField para poder reponerlos.
72
	 */
73
	public String lastTx = "", lastTy = "", lastLong = "", lastLat = "";
74
	
67 75
	public SelectPointsPanel() {
68 76
		super();
69 77
		initialize();
......
183 191
				dataPointPanel.getTY().addKeyListener(this);
184 192
				dataPointPanel.getLatitud().addKeyListener(this);
185 193
				dataPointPanel.getLongitud().addKeyListener(this);
194
				dataPointPanel.getTX().addFocusListener(this);
195
				dataPointPanel.getTY().addFocusListener(this);
196
				dataPointPanel.getLatitud().addFocusListener(this);
197
				dataPointPanel.getLongitud().addFocusListener(this);
186 198
			}
187 199
			pControlPoint.add(dataPointPanel, gridBagConstraints2);
188 200
			
......
477 489
	}
478 490
	
479 491
	/**
480
	 * Checkea un textField para que contenga caracteres numericos y actualiza 
481
	 * un punto con el valor actual de l JTextField. Si no hay puntos en la 
482
	 * lista no salvar? ning?n valor.
492
	 * Checkea un textField para que contenga caracteres validos. Consideramos validos
493
	 * los caracteres del 0 al 9, el punto, DEL, Supr, flechas y Enter teniendo en cuenta que el 
494
	 * c?digo ascii del teclado numerico es distinto.
483 495
	 */
484
	public void checkTextField(JTextField tf, boolean xValue, boolean pixelValue, int code){
485
				
486
		//Ignoramos las teclas Del, Spr, Mayusculas, Alt, Ctrl, Enter
487
		if(code == 8 || code == 127 || code == 16 || code == 20 ||
488
				code == 18 || code == 17 || code == 10 )
489
			return;
490
		
491
		//Si el caracter introducido es erroneo avisamos y volvemos
492
		if((code < 48 || code > 57) && code != 46){
493
			tf.setText("");
494
			JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
495
					PluginServices.getText(this, "caracteres_erroneos"));
496
			return;
496
	public boolean checkTextField(JTextField tf, int code, String lastText){
497
			System.out.println(code);
498
		//Si el caracter es erroneo pasamos de el y reponemos el texto que habia
499
		if(	(code >= 0 && code <= 7) || 
500
			code == 9 || 
501
			(code >= 11 && code <= 36) ||
502
			(code >= 41 && code <= 45) ||
503
			code == 47 ||
504
			(code >= 58 && code <= 95) ||
505
			(code >= 106 && code <= 109) ||
506
			(code >= 111 && code <= 126) ||
507
			code >= 128){
508
			tf.setText(lastText);
509
			return false;
497 510
		}
498 511
		
499
		//Si no hay puntos en la lista no se hace nada
500
		if(lyrPoints == null || lyrPoints.getCountPoints() == 0)
501
			return;
502
		
503
		//Si el caracter era valido salvamos el valor en la capa
504
		if(!tf.getText().equals("")){
505
			loadLyrPoint();
506
			Point2D p = null;
507
			if(pixelValue)
508
				p = ((GeoPoint)lyrPoints.getPoint(tableControlerPanel.getCPoint().getSelectedIndex())).pixelPoint;
509
			else
510
				p = ((GeoPoint)lyrPoints.getPoint(tableControlerPanel.getCPoint().getSelectedIndex())).mapPoint;
511
			if(xValue){
512
				if(p != null)
513
					p.setLocation(Double.valueOf(tf.getText()).doubleValue(), p.getY());
514
				else{
515
					p = new Point2D.Double();
516
					p.setLocation(Double.valueOf(tf.getText()).doubleValue(), 0.0);
517
				}
518
			}else{
519
				if(p != null)
520
					p.setLocation(p.getX(), Double.valueOf(tY.getText()).doubleValue());
521
				else{
522
					p = new Point2D.Double();
523
					p.setLocation(0.0, Double.valueOf(tY.getText()).doubleValue());
524
				}
525
			}
526
		}
512
		return true;
527 513
	}
528 514
		
529 515
	/**
......
711 697
	 * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
712 698
	 */
713 699
	public void keyPressed(KeyEvent e) {
714
		// TODO Auto-generated method stub
715
		
700
		// TODO Auto-generated method stu
716 701
	}
717 702

  
718 703
	/**
704
	 * Actualiza los valores del punto nuevo introducido desde el teclado llamando a la funci?n
705
	 * de la capa updataData que actualizar? los controles necesarios para que se refresquen la vista
706
	 * mini imagenes, textfields, tabla y capa de puntos. 
707
	 * @param pixel Pixel de la imagen
708
	 * @param map Coordenadas de la vista.
709
	 */
710
	private void updatePointsValue(Point2D pixel, Point2D map){
711
		//Actualizamos los controles con los nuevos valores
712
		View theView = (View) PluginServices.getMDIManager().getActiveView();
713
		for(int i=0;i<theView.getMapControl().getMapContext().getLayers().getLayersCount();i++){
714
			FLayer lyr = theView.getMapControl().getMapContext().getLayers().getLayer(i);
715
			if(	lyr instanceof FLyrGeoRaster && 
716
				lyr.getName().startsWith("*") &&
717
				lyr.isActive()){
718
				((FLyrGeoRaster)lyr).updateData(Integer.valueOf(this.grd.getSelectPointsPanel().getTableControlerPanel().getCPoint().getSelectedItem().toString()).intValue(),
719
												pixel, 
720
												map, 
721
												this.grd,
722
												theView, 
723
												lyrPoints);
724
			}
725
		}
726
	}
727
	
728
	/**
719 729
	 * Control de eventos de las entradas de texto de los puntos
720 730
	 */
721 731
	public void keyReleased(KeyEvent e) {
722 732
		//Campo de texto de la coordenada X en pixeles
723
		if(e.getSource() == dataPointPanel.getTX()){
724
			checkTextField(dataPointPanel.getTX(), true, true, e.getKeyCode());
725
		}
733
		Point2D pixel = null;
734
		Point2D map = null;
735
		boolean update = false;
726 736
		
727
		//Campo de texto de la coordenada Y en pixeles
728
		if(e.getSource() == dataPointPanel.getTY()){
729
			checkTextField(dataPointPanel.getTY(), false, true, e.getKeyCode());
737
		try{
738
			if(e.getSource() == dataPointPanel.getTX()){
739
				if(checkTextField(dataPointPanel.getTX(), e.getKeyCode(), lastTx)){
740
					pixel = new Point2D.Double();
741
					pixel.setLocation(	Double.valueOf(dataPointPanel.getTX().getText()).doubleValue(), 
742
										Double.valueOf(dataPointPanel.getTY().getText()).doubleValue());
743
					if(e.getKeyCode() == 10)
744
						update = true;
745
					lastTx = dataPointPanel.getTX().getText();
746
				}
747
			}
748
			
749
			//Campo de texto de la coordenada Y en pixeles
750
			if(e.getSource() == dataPointPanel.getTY()){
751
				if(checkTextField(dataPointPanel.getTY(), e.getKeyCode(), lastTy)){
752
					pixel = new Point2D.Double();
753
					pixel.setLocation(	Double.valueOf(dataPointPanel.getTX().getText()).doubleValue(), 
754
										Double.valueOf(dataPointPanel.getTY().getText()).doubleValue());
755
					if(e.getKeyCode() == 10)
756
						update = true;
757
					lastTy = dataPointPanel.getTY().getText();
758
				}
759
			}
760
	
761
			//Campo de texto de la coordenada X en coordenadas del mundo
762
			if(e.getSource() == dataPointPanel.getLatitud()){
763
				if(checkTextField(dataPointPanel.getLatitud(), e.getKeyCode(), lastLat)){
764
					map = new Point2D.Double();
765
					map.setLocation(	Double.valueOf(dataPointPanel.getLongitud().getText()).doubleValue(), 
766
										Double.valueOf(dataPointPanel.getLatitud().getText()).doubleValue());
767
					if(e.getKeyCode() == 10)
768
						update = true;
769
					lastLat = dataPointPanel.getLatitud().getText();
770
				}
771
			}
772
	
773
			//Campo de texto de la coordenada Y en coordenadas del mundo
774
			if(e.getSource() == dataPointPanel.getLongitud()){
775
				if(checkTextField(dataPointPanel.getLongitud(), e.getKeyCode(), lastLong)){
776
					map = new Point2D.Double();
777
					map.setLocation(	Double.valueOf(dataPointPanel.getLongitud().getText()).doubleValue(), 
778
										Double.valueOf(dataPointPanel.getLatitud().getText()).doubleValue());
779
					if(e.getKeyCode() == 10)
780
						update = true;
781
					lastLong = dataPointPanel.getLongitud().getText();
782
				}
783
			}
784
			
785
			if(update)
786
				this.updatePointsValue(pixel, map);
787
			
788
		}catch(NumberFormatException exc){
789
			System.out.println("Formato numerico erroneo");
730 790
		}
731

  
732
		//Campo de texto de la coordenada X en coordenadas del mundo
733
		if(e.getSource() == dataPointPanel.getLatitud()){
734
			checkTextField(dataPointPanel.getLatitud(), true, false, e.getKeyCode());
735
		}
736

  
737
		//Campo de texto de la coordenada Y en coordenadas del mundo
738
		if(e.getSource() == dataPointPanel.getLongitud()){
739
			checkTextField(dataPointPanel.getLongitud(), false, false, e.getKeyCode());
740
		}
741 791
		
742 792
	}
743 793

  
......
748 798
		// TODO Auto-generated method stub
749 799
		
750 800
	}
801
	
802
	/* (non-Javadoc)
803
	 * @see java.awt.event.FocusListener#focusGained(java.awt.event.FocusEvent)
804
	 */
805
	public void focusGained(FocusEvent arg0) {
806
		// TODO Auto-generated method stub
751 807

  
808
	}
809
	
810
	/**
811
	 * Los campos de texto de las coordenadas cuando pierden el foco actualizan el valor del pixel
812
	 * en la cap, vista, mini imagen y tabla
813
	 */
814
	public void focusLost(FocusEvent arg0) {
815
		Point2D pixel = new Point2D.Double();
816
		Point2D map = new Point2D.Double();
817
		pixel.setLocation(Double.valueOf(dataPointPanel.getTX().getText()).doubleValue(),
818
						  Double.valueOf(dataPointPanel.getTY().getText()).doubleValue());
819
		map.setLocation(Double.valueOf(dataPointPanel.getLongitud().getText()).doubleValue(),
820
						Double.valueOf(dataPointPanel.getLatitud().getText()).doubleValue());
821
		this.updatePointsValue(pixel, map);
752 822

  
823
	}
824

  
753 825
 }
trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/gui/Panels/DataPointsTabPanel.java
89 89
		}
90 90
		
91 91
		if (((JTabbedPane)ev.getSource()).getSelectedIndex() == 1){
92
			parent.getFrame().setResizable(true);
93
			
94
			FLyrPoints lyrPoints = null;
95
			View theView = (View) PluginServices.getMDIManager().getActiveView();	
96
			for(int i=0;i<theView.getMapControl().getMapContext().getLayers().getLayersCount();i++){
97
				FLayer lyr = theView.getMapControl().getMapContext().getLayers().getLayer(i);
98
				if(	lyr instanceof FLyrPoints)
99
					lyrPoints = (FLyrPoints)lyr;
100
			}
101
			if(lyrPoints != null){
102
				//A?adimos las filas que falten
103
				for(int i=tablePointsPanel.getJTable().getTableModel().getRowCount();
104
					i<lyrPoints.length();i++)
105
					this.tablePointsPanel.getJTable().getTableModel().addNew();
106
				
107
				//Llenamos la tabla
108
				for(int i=0;i<lyrPoints.length();i++){
109
					GeoPoint p = lyrPoints.getPoint(i);
110
					this.tablePointsPanel.getJTable().getTableModel().setValueAt(String.valueOf(i),i,0);
111
					this.tablePointsPanel.getJTable().getTableModel().setValueAt(String.valueOf(p.pixelPoint.getX()),i,1);
112
					this.tablePointsPanel.getJTable().getTableModel().setValueAt(String.valueOf(p.pixelPoint.getY()),i,2);
113
					this.tablePointsPanel.getJTable().getTableModel().setValueAt(String.valueOf(p.mapPoint.getX()),i,3);
114
					this.tablePointsPanel.getJTable().getTableModel().setValueAt(String.valueOf(p.mapPoint.getY()),i,4);
115
					this.tablePointsPanel.getJTable().getTableModel().setValueAt("",i,5);
116
					this.tablePointsPanel.getJTable().getTableModel().setValueAt("",i,6);
117
					this.tablePointsPanel.getJTable().getTableModel().setValueAt("",i,7);
118
				}
119
					
120
			}
121
				
122
			
123
				
124
			
92
			parent.getFrame().setResizable(true);		
125 93
		}
126 94
		
127 95
	}
trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/gui/Panels/TablePointsPanel.java
222 222
	     * @author Nacho Brodin (brodin_ign@gva.es)
223 223
	     *
224 224
	     */
225
	    class TableModelPoint extends DefaultTableModel {
225
	    public class TableModelPoint extends DefaultTableModel {
226 226
	    	 
227 227
	        public TableModelPoint(){
228 228
	        	super(new Object[0][8], columnNames);
......
260 260

  
261 261
	 
262 262
	    }
263
		/**
264
		 * @return Returns the table.
265
		 */
266
		public JTable getTable() {
267
			return table;
268
		}
263 269
	}
264 270
}
trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/gui/Panels/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
        	 
trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/gui/toolListeners/GeorefPointerListener.java
131 131
					return;
132 132
				}
133 133
								
134
				//Salvamos el primer punto pinchado en la capa. (Pixeles de la imagen)
135
				lyrPoints.getPoint(GeorefPointerListener.posPoint).pixelPoint = new Point2D.Double();
136
				lyrPoints.getPoint(GeorefPointerListener.posPoint).pixelPoint.setLocation(((int)pixelImg.getX()), ((int)pixelImg.getY()));
137
				//Cargamos en la ventana el nuevo punto
138
				dialog.setPixelText(pixelImg.getX(), pixelImg.getY());
139
				
140
				//Asignamos el viewPort sobre el control de detalle de zoom
141
				lyrGeoRaster.getGeoDialog().getConectorPanel().getAdjustGeorefPanel().getZoomLeft().setCenterPoint(wcPoint);
142 134
				int n = Integer.valueOf(dialog.getSelectPointsPanel().getTableControlerPanel().getCPoint().getSelectedItem().toString()).intValue();
143
				lyrGeoRaster.getGeoDialog().getConectorPanel().getAdjustGeorefPanel().setNumberPoint(n);
144
				lyrGeoRaster.getGeoDialog().getConectorPanel().getAdjustGeorefPanel().setViewPort(viewPort);
145
				lyrGeoRaster.getGeoDialog().getConectorPanel().getAdjustGeorefPanel().getZoomLeft().draw();
135
				lyrGeoRaster.updateData(n, 
136
										pixelImg, 
137
										null, 
138
										dialog, 
139
										theView, 
140
										lyrPoints);
146 141
				
147 142
				firstPoint = false;
148 143
			}
149 144
		}else{
150
			//Salvamos el segundo punto pinchado en la capa (Coordenadas de georreferenciaci?n)
151
			lyrPoints.getPoint(GeorefPointerListener.posPoint).mapPoint = new Point2D.Double();
152
			lyrPoints.getPoint(GeorefPointerListener.posPoint).mapPoint.setLocation(wcPoint);
153
			//Cargamos en la ventana el nuevo punto
154
			dialog.setMapCoordText(wcPoint.getX(), wcPoint.getY());
155
									
145
			
156 146
			//Deseleccionamos la herramienta de marcado de puntos
157 147
			theView.getMapControl().setTool(lyrPoints.getLastTool());
158 148
		
159
			//Asignamos el viewPort sobre el control de detalle de zoom
160
			lyrGeoRaster.getGeoDialog().getConectorPanel().getAdjustGeorefPanel().getZoomRight().setCenterPoint(wcPoint);
161
			lyrGeoRaster.getGeoDialog().getConectorPanel().getAdjustGeorefPanel().setViewPort(viewPort);
162
			lyrGeoRaster.getGeoDialog().getConectorPanel().getAdjustGeorefPanel().getZoomRight().draw();
163
			
149
			int n = Integer.valueOf(dialog.getSelectPointsPanel().getTableControlerPanel().getCPoint().getSelectedItem().toString()).intValue();
150
			lyrGeoRaster.updateData(n, 
151
									null, 
152
									wcPoint, 
153
									dialog, 
154
									theView, 
155
									lyrPoints);
164 156
			firstPoint = true;
165 157
		}
166
		theView.getMapControl().getMapContext().invalidate();
158
		
167 159
	}
168 160
}

Also available in: Unified diff