Revision 3049 trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/gui/Panels/ZoomControlPanel.java
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