Revision 3102 trunk/extensions/extGeoreferencing/src/com/iver/cit/gvsig/gui/Panels/ZoomControlPanel.java
ZoomControlPanel.java | ||
---|---|---|
100 | 100 |
*/ |
101 | 101 |
public void loadLayer() throws InstantiationException{ |
102 | 102 |
//Cargamos la capa |
103 |
View theView = (View) PluginServices.getMDIManager().getActiveView(); |
|
103 |
View theView = null; |
|
104 |
try{ |
|
105 |
theView = (View)PluginServices.getMDIManager().getActiveView(); |
|
106 |
}catch(ClassCastException exc){ |
|
107 |
return; |
|
108 |
} |
|
104 | 109 |
for(int i=0;i<theView.getMapControl().getMapContext().getLayers().getLayersCount();i++){ |
105 | 110 |
FLayer lyr = theView.getMapControl().getMapContext().getLayers().getLayer(i); |
106 | 111 |
if( lyr instanceof FLyrGeoRaster && |
107 | 112 |
lyr.getName().startsWith("*") && |
108 | 113 |
lyr.isActive()){ |
109 | 114 |
lyrGeoRaster = (FLyrGeoRaster)lyr; |
110 |
lyrPoints = lyrGeoRaster.getFLyrPoints(); |
|
115 |
try{ |
|
116 |
lyrPoints = lyrGeoRaster.getFLyrPoints(); |
|
117 |
}catch(ClassCastException exc){ |
|
118 |
throw new InstantiationException("No se ha podido instanciar la capa de puntos o georreferenciada"); |
|
119 |
} |
|
111 | 120 |
} |
112 | 121 |
} |
122 |
|
|
113 | 123 |
if(lyrGeoRaster == null || lyrPoints == null) |
114 | 124 |
throw new InstantiationException("No se ha podido instanciar la capa de puntos o georreferenciada"); |
115 | 125 |
|
... | ... | |
343 | 353 |
private ViewPort viewPort = null; |
344 | 354 |
private ViewPort newViewPort = null; |
345 | 355 |
private Point2D centerPoint = null; |
346 |
private int zoom = 20;
|
|
356 |
private int initZoom = 20;
|
|
347 | 357 |
private boolean dragged = false; |
348 | 358 |
private Image dobleBuffer = null; |
349 | 359 |
private BufferedImage imgTmp = null; |
350 | 360 |
private Graphics dbGraphics = null; |
351 | 361 |
private boolean cleanCanvas = false; |
352 |
|
|
362 |
|
|
353 | 363 |
/** |
354 | 364 |
* Puntos inicial y final para el desplazamiento del punto de control |
355 | 365 |
*/ |
... | ... | |
402 | 412 |
r.width = newViewPort.getExtent().getWidth() * factor; |
403 | 413 |
r.height = newViewPort.getExtent().getHeight() * factor; |
404 | 414 |
newViewPort.setExtent(r); |
405 |
} |
|
415 |
newViewPort.setScale(); |
|
416 |
} |
|
417 |
|
|
406 | 418 |
|
407 | 419 |
/** |
408 | 420 |
*Calculamos el viewPort para el zoom de la minimagen |
... | ... | |
411 | 423 |
if(centerPoint != null){ |
412 | 424 |
newViewPort = this.viewPort.cloneViewPort(); |
413 | 425 |
//Hallamos la relaci?n entre el pixel y las WC a partir de la imagen de la capa |
414 |
double relacionPixelWcWidth = ((viewPort.getExtent().getMaxX() - viewPort.getExtent().getMinX()) / zoom)/ancho;
|
|
415 |
double relacionPixelWcHeight = ((viewPort.getExtent().getMaxY() - viewPort.getExtent().getMinY()) / zoom)/alto;
|
|
426 |
double relacionPixelWcWidth = ((viewPort.getExtent().getMaxX() - viewPort.getExtent().getMinX()) / initZoom)/ancho;
|
|
427 |
double relacionPixelWcHeight = ((viewPort.getExtent().getMaxY() - viewPort.getExtent().getMinY()) / initZoom)/alto;
|
|
416 | 428 |
|
417 | 429 |
double wcOriginX = centerPoint.getX() - ((viewPort.getImageWidth()*relacionPixelWcWidth)/2); |
418 | 430 |
double wcOriginY = centerPoint.getY() - ((viewPort.getImageHeight()*relacionPixelWcHeight)/2); |
... | ... | |
457 | 469 |
} |
458 | 470 |
//Si no tenemos las capas las cargamos |
459 | 471 |
if(flayers == null){ |
460 |
View theView = (View) PluginServices.getMDIManager().getActiveView(); |
|
472 |
View theView = null; |
|
473 |
try{ |
|
474 |
theView = (View)PluginServices.getMDIManager().getActiveView(); |
|
475 |
}catch(ClassCastException exc){ |
|
476 |
return; |
|
477 |
} |
|
461 | 478 |
flayers = theView.getMapControl().getMapContext().getLayers(); |
462 | 479 |
} |
463 | 480 |
//dibujamos |
... | ... | |
521 | 538 |
public void setCenterPoint(Point2D pto){ |
522 | 539 |
this.centerPoint = pto; |
523 | 540 |
} |
524 |
|
|
541 |
|
|
542 |
/** |
|
543 |
* Desplaza el extent al nuevo centro |
|
544 |
* @param pto |
|
545 |
*/ |
|
546 |
public void shiftExtent(Point2D pto){ |
|
547 |
this.setCenterPoint(pto); |
|
548 |
this.calcZoom(1); |
|
549 |
} |
|
550 |
|
|
525 | 551 |
/* (non-Javadoc) |
526 | 552 |
* @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent) |
527 | 553 |
*/ |
... | ... | |
565 | 591 |
* @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent) |
566 | 592 |
*/ |
567 | 593 |
public void mouseReleased(MouseEvent ev) { |
568 |
View theView = (View) PluginServices.getMDIManager().getActiveView(); |
|
594 |
View theView = null; |
|
595 |
try{ |
|
596 |
theView = (View) PluginServices.getMDIManager().getActiveView(); |
|
597 |
}catch(ClassCastException exc){ |
|
598 |
return; |
|
599 |
} |
|
569 | 600 |
ViewPort viewPort = theView.getMapControl().getMapContext().getViewPort(); |
570 | 601 |
ptoFin = ev.getPoint(); |
571 | 602 |
this.dragged = false; |
572 | 603 |
|
573 | 604 |
double destX = newViewPort.getExtent().getMinX() + ((ptoFin.getX() * (centerPoint.getX() - newViewPort.getExtent().getMinX())) / ptoIni.getX()); |
574 | 605 |
double destY = newViewPort.getExtent().getMinY() + (((this.getHeight() - ptoFin.getY()) * (centerPoint.getY() - newViewPort.getExtent().getMinY())) / (this.getHeight() - ptoIni.getY())); |
575 |
|
|
606 |
|
|
607 |
int nPoint = Integer.valueOf(zoomControl.getDialog().getSelectPointsPanel().getTableControlerPanel().getCPoint().getSelectedItem().toString()).intValue(); |
|
608 |
|
|
576 | 609 |
if(flayers == null) |
577 | 610 |
flayers = theView.getMapControl().getMapContext().getLayers(); |
578 | 611 |
for(int i=0;i<flayers.getLayersCount();i++){ |
... | ... | |
588 | 621 |
PluginServices.getText(this, "fuera_de_extent")); |
589 | 622 |
return; |
590 | 623 |
} |
591 |
zoomControl.getLyrGeoRaster().updateData( Integer.valueOf(zoomControl.getDialog().getSelectPointsPanel().getTableControlerPanel().getCPoint().getSelectedItem().toString()).intValue(),
|
|
624 |
zoomControl.getLyrGeoRaster().updateData( nPoint,
|
|
592 | 625 |
pixelImg, |
593 | 626 |
null, |
594 | 627 |
zoomControl.getDialog(), |
595 |
theView,
|
|
628 |
null,
|
|
596 | 629 |
lp); |
597 | 630 |
|
631 |
//Actualizamos la otra miniimagen |
|
632 |
//zoomControl.getDialog().getConectorPanel().getAdjustGeorefPanel().getZoomRight().getCanvas().calcStoreZoom(); |
|
633 |
//setCenterPoint(zoomControl.getLyrGeoRaster().img2World(pixelImg)); |
|
634 |
shiftExtent(zoomControl.getLyrGeoRaster().img2World(pixelImg)); |
|
635 |
zoomControl.getDialog().getConectorPanel().getAdjustGeorefPanel().getZoomLeft().draw(); |
|
636 |
zoomControl.getDialog().getConectorPanel().getAdjustGeorefPanel().getZoomRight().draw(); |
|
598 | 637 |
}else{ //Control de actualizaci?n de coordenadas del mundo |
599 | 638 |
Point2D mapPoint = new Point2D.Double(); |
600 | 639 |
mapPoint.setLocation(destX, destY); |
601 |
zoomControl.getLyrGeoRaster().updateData( Integer.valueOf(zoomControl.getDialog().getSelectPointsPanel().getTableControlerPanel().getCPoint().getSelectedItem().toString()).intValue(),
|
|
640 |
zoomControl.getLyrGeoRaster().updateData( nPoint,
|
|
602 | 641 |
null, |
603 | 642 |
mapPoint, |
604 | 643 |
zoomControl.getDialog(), |
605 |
theView,
|
|
644 |
null,
|
|
606 | 645 |
lp); |
646 |
|
|
647 |
//Actualizamos la otra miniimagen |
|
648 |
//zoomControl.getDialog().getConectorPanel().getAdjustGeorefPanel().getZoomLeft().getCanvas().calcStoreZoom(); |
|
649 |
//setCenterPoint(mapPoint); |
|
650 |
shiftExtent(mapPoint); |
|
651 |
zoomControl.getDialog().getConectorPanel().getAdjustGeorefPanel().getZoomRight().draw(); |
|
652 |
zoomControl.getDialog().getConectorPanel().getAdjustGeorefPanel().getZoomLeft().draw(); |
|
607 | 653 |
} |
654 |
|
|
608 | 655 |
} |
609 | 656 |
} |
610 | 657 |
|
611 |
|
|
658 |
theView.getMapControl().getMapContext().invalidate(); |
|
612 | 659 |
repaint(); |
613 | 660 |
} |
614 | 661 |
|
Also available in: Unified diff