Revision 12728 trunk/libraries/libFMap/src/com/iver/cit/gvsig/fmap/MapContext.java
MapContext.java | ||
---|---|---|
1 |
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
|
1 |
/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
|
|
2 | 2 |
* |
3 | 3 |
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana. |
4 | 4 |
* |
... | ... | |
20 | 20 |
* |
21 | 21 |
* Generalitat Valenciana |
22 | 22 |
* Conselleria d'Infraestructures i Transport |
23 |
* Av. Blasco Ib??ez, 50
|
|
23 |
* Av. Blasco Ib��ez, 50
|
|
24 | 24 |
* 46010 VALENCIA |
25 | 25 |
* SPAIN |
26 | 26 |
* |
... | ... | |
40 | 40 |
*/ |
41 | 41 |
package com.iver.cit.gvsig.fmap; |
42 | 42 |
|
43 |
import java.awt.Color; |
|
43 | 44 |
import java.awt.Graphics2D; |
44 | 45 |
import java.awt.RenderingHints; |
45 | 46 |
import java.awt.Toolkit; |
... | ... | |
62 | 63 |
import com.iver.cit.gvsig.exceptions.visitors.VisitorException; |
63 | 64 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
64 | 65 |
import com.iver.cit.gvsig.fmap.core.symbols.ISymbol; |
66 |
import com.iver.cit.gvsig.fmap.core.v02.FSymbol; |
|
65 | 67 |
import com.iver.cit.gvsig.fmap.layers.CancelationException; |
66 | 68 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
67 | 69 |
import com.iver.cit.gvsig.fmap.layers.FLayers; |
... | ... | |
86 | 88 |
/** |
87 | 89 |
* Modelo del mapa. |
88 | 90 |
* |
89 |
* @author Fernando Gonz?lez Cort?s
|
|
91 |
* @author Fernando Gonz�lez Cort�s
|
|
90 | 92 |
*/ |
91 | 93 |
public class MapContext implements Projected { |
92 | 94 |
/* Do not alter the order and the values of this array, if you need append values.*/ |
... | ... | |
149 | 151 |
// ResourceBundle.getBundle("FMap"); |
150 | 152 |
public static double ZOOMINFACTOR=2; |
151 | 153 |
public static double ZOOMOUTFACTOR=0.5; |
154 |
|
|
155 |
private static Color selectionColor; |
|
156 |
|
|
157 |
|
|
152 | 158 |
/** |
159 |
* Devuelve el color que se aplica a los shapes seleccionados. |
|
160 |
* |
|
161 |
* @return DOCUMENT ME! |
|
162 |
*/ |
|
163 |
public static Color getSelectionColor() { |
|
164 |
return selectionColor; |
|
165 |
} |
|
166 |
|
|
167 |
/** |
|
168 |
* Introduce el color que se aplica a los shapes seleccionados. |
|
169 |
* |
|
170 |
* @param selectionColor DOCUMENT ME! |
|
171 |
*/ |
|
172 |
public static void setSelectionColor(Color selectionColor) { |
|
173 |
MapContext.selectionColor = selectionColor; |
|
174 |
} |
|
175 |
|
|
176 |
/** |
|
153 | 177 |
* Crea un nuevo FMap. |
154 | 178 |
* |
155 | 179 |
* @param vp |
... | ... | |
191 | 215 |
|
192 | 216 |
|
193 | 217 |
/** |
194 |
* A?ade un LegendListener.
|
|
218 |
* A�ade un LegendListener.
|
|
195 | 219 |
* |
196 | 220 |
* @param listener |
197 |
* LegendListener a a?adir.
|
|
221 |
* LegendListener a a�adir.
|
|
198 | 222 |
*/ |
199 | 223 |
public void addLayerListener(LegendListener listener) { |
200 | 224 |
if (!legendListeners.contains(listener)) |
... | ... | |
218 | 242 |
} |
219 | 243 |
|
220 | 244 |
/** |
221 |
* M?todo ejecutado cuando hay un cambio de leyenda que se quiera reflejar.
|
|
245 |
* M�todo ejecutado cuando hay un cambio de leyenda que se quiera reflejar.
|
|
222 | 246 |
* |
223 | 247 |
* @param e |
224 | 248 |
* LegendChangedEvent. |
... | ... | |
280 | 304 |
} |
281 | 305 |
|
282 | 306 |
/** |
283 |
* Dibuja en la imagen que se pasa como par?metro el contenido de las capas
|
|
307 |
* Dibuja en la imagen que se pasa como par�metro el contenido de las capas
|
|
284 | 308 |
* visibles del mapa y teniendo en cuenta los datos del ViewPort contenido |
285 | 309 |
* en este FMap |
286 | 310 |
* |
... | ... | |
291 | 315 |
} |
292 | 316 |
|
293 | 317 |
/** |
294 |
* M?todo de conveniencia que se usa provisionalmente para solicitar un
|
|
295 |
* refresco de todo lo que dependa del FMap (MapContext). Esto provocar? un
|
|
296 |
* evento de cambio de orden de capas que obligar? a redibujar todo lo que
|
|
318 |
* M�todo de conveniencia que se usa provisionalmente para solicitar un
|
|
319 |
* refresco de todo lo que dependa del FMap (MapContext). Esto provocar� un
|
|
320 |
* evento de cambio de orden de capas que obligar� a redibujar todo lo que
|
|
297 | 321 |
* depende de FMap (TOC, MapControl, FFrameView, etc). |
298 | 322 |
*/ |
299 | 323 |
public void invalidate() { |
... | ... | |
303 | 327 |
|
304 | 328 |
/** |
305 | 329 |
* Imprime el las capas que contiene el FMap sobre el Graphics2D que se pasa |
306 |
* como par?metro, normalmente es el Graphics de la impresora.
|
|
330 |
* como par�metro, normalmente es el Graphics de la impresora.
|
|
307 | 331 |
* |
308 | 332 |
* @param g |
309 | 333 |
* Graphics2D |
... | ... | |
323 | 347 |
} |
324 | 348 |
|
325 | 349 |
public void setCanceled(boolean canceled) { |
326 |
// No queremos que se pueda cancelar la impresi?n.
|
|
350 |
// No queremos que se pueda cancelar la impresi�n.
|
|
327 | 351 |
|
328 | 352 |
} |
329 | 353 |
}; |
... | ... | |
332 | 356 |
} |
333 | 357 |
|
334 | 358 |
/** |
335 |
* Crea un nuevo FMap con la informaci?n del ViewPort que se pasa como
|
|
336 |
* par?metro.
|
|
359 |
* Crea un nuevo FMap con la informaci�n del ViewPort que se pasa como
|
|
360 |
* par�metro.
|
|
337 | 361 |
* |
338 | 362 |
* @param vp |
339 | 363 |
* ViewPort. |
... | ... | |
383 | 407 |
} |
384 | 408 |
|
385 | 409 |
/** |
386 |
* A?ade la capa que se pasa como par?metro al nodo que se pasa como
|
|
387 |
* parametro y lanza ProjectionMismatchException si no est?n todas las capas
|
|
388 |
* de este FMap en la misma proyecci?n. Lanza un ChildNotAllowedException si
|
|
410 |
* A�ade la capa que se pasa como par�metro al nodo que se pasa como
|
|
411 |
* parametro y lanza ProjectionMismatchException si no est�n todas las capas
|
|
412 |
* de este FMap en la misma proyecci�n. Lanza un ChildNotAllowedException si
|
|
389 | 413 |
* la capa no es un FLayers y no permite hijos |
390 | 414 |
* |
391 | 415 |
* @param vectorial |
... | ... | |
400 | 424 |
*/ |
401 | 425 |
|
402 | 426 |
/** |
403 |
* A?ade una capa al grupo de capas que se sit?a por encima de todas las
|
|
427 |
* A�ade una capa al grupo de capas que se sit�a por encima de todas las
|
|
404 | 428 |
* otras capas |
405 | 429 |
* |
406 | 430 |
* @param vectorial |
... | ... | |
439 | 463 |
|
440 | 464 |
|
441 | 465 |
/** |
442 |
* Introduce un nuevo extent en la vista a partir de la escala que se pasa como par?metro.
|
|
466 |
* Introduce un nuevo extent en la vista a partir de la escala que se pasa como par�metro.
|
|
443 | 467 |
* |
444 | 468 |
* @return escala de la vista. |
445 | 469 |
*/ |
... | ... | |
512 | 536 |
} |
513 | 537 |
|
514 | 538 |
/** |
515 |
* Inserta la proyecci?n.
|
|
539 |
* Inserta la proyecci�n.
|
|
516 | 540 |
* |
517 | 541 |
* @param proj |
518 |
* Proyecci?n.
|
|
542 |
* Proyecci�n.
|
|
519 | 543 |
*/ |
520 | 544 |
public void setProjection(IProjection proj) { |
521 | 545 |
if (getViewPort() != null) { |
... | ... | |
527 | 551 |
* @see org.cresques.geo.Projected#reProject(org.cresques.cts.ICoordTrans) |
528 | 552 |
*/ |
529 | 553 |
public void reProject(ICoordTrans arg0) { |
530 |
// TODO implementar reprojecci?n (lo que sea eso)
|
|
554 |
// TODO implementar reprojecci�n (lo que sea eso)
|
|
531 | 555 |
} |
532 | 556 |
|
533 | 557 |
/** |
... | ... | |
543 | 567 |
* |
544 | 568 |
* try { layers.process(visitor); } catch (VisitException e) { throw new |
545 | 569 |
* RuntimeException("No se espera que SelectByPointVisitor lance esta |
546 |
* excepci?n", e); } }
|
|
570 |
* excepci�n", e); } }
|
|
547 | 571 |
*/ |
548 | 572 |
|
549 | 573 |
/** |
... | ... | |
599 | 623 |
layers.process(visitor); |
600 | 624 |
} catch (ReadDriverException e1) { |
601 | 625 |
throw new RuntimeException( |
602 |
"No se espera que SelectByPointVisitor lance esta excepci?n",
|
|
626 |
"No se espera que SelectByPointVisitor lance esta excepci�n",
|
|
603 | 627 |
e1); |
604 | 628 |
} catch (VisitorException e) { |
605 | 629 |
throw new RuntimeException( |
606 |
"No se espera que SelectByPointVisitor lance esta excepci?n",
|
|
630 |
"No se espera que SelectByPointVisitor lance esta excepci�n",
|
|
607 | 631 |
e); |
608 | 632 |
} |
609 | 633 |
|
... | ... | |
628 | 652 |
|
629 | 653 |
prepareDrawing(image, g, scale); |
630 | 654 |
|
631 |
// M?s c?lidad al texto
|
|
655 |
// M�s c�lidad al texto
|
|
632 | 656 |
RenderingHints renderHints = new RenderingHints( |
633 | 657 |
RenderingHints.KEY_ANTIALIASING, |
634 | 658 |
RenderingHints.VALUE_ANTIALIAS_ON); |
... | ... | |
662 | 686 |
} |
663 | 687 |
|
664 | 688 |
/** |
665 |
* En esta funci?n vamos a revisar las capas que necesitan repintarse,
|
|
689 |
* En esta funci�n vamos a revisar las capas que necesitan repintarse,
|
|
666 | 690 |
* por si hay alguna que se haya guardado la imagen de las anteriores |
667 | 691 |
* y puede acelerar el dibujado. |
668 | 692 |
* @param image |
... | ... | |
699 | 723 |
|
700 | 724 |
private void validatePreviousLayers(FLayers layers, int index) |
701 | 725 |
{ |
702 |
// TODO: Aqu? quiz?s habr?a que explorar los padres de las capas
|
|
726 |
// TODO: Aqu� quiz�s habr�a que explorar los padres de las capas
|
|
703 | 727 |
// para marcar y/o asignar la imagen cacheada. |
704 | 728 |
for (int i = 0; i < index; i++) |
705 | 729 |
{ |
... | ... | |
721 | 745 |
FLayer lyr = layers.getLayer(i); |
722 | 746 |
if (lyr.isCachingDrawnLayers() && (lyr.getCacheImageDrawnLayers() != null)) |
723 | 747 |
{ |
724 |
// les decimos a las anteriores que est?n validadas (not dirty)
|
|
748 |
// les decimos a las anteriores que est�n validadas (not dirty)
|
|
725 | 749 |
// para que no se dibujen. |
726 | 750 |
if (lyr.isDirty()) |
727 | 751 |
validatePreviousLayers(parent, i); |
... | ... | |
800 | 824 |
} |
801 | 825 |
|
802 | 826 |
/** |
803 |
* M?todo de conveniencia. Recorre las capas y te da el fullExtent
|
|
827 |
* M�todo de conveniencia. Recorre las capas y te da el fullExtent
|
|
804 | 828 |
* |
805 | 829 |
* @return fullExtent de todas las capas. |
806 | 830 |
* |
... | ... | |
862 | 886 |
} |
863 | 887 |
|
864 | 888 |
/** |
865 |
* A?ade un AtomicEventListener.
|
|
889 |
* A�ade un AtomicEventListener.
|
|
866 | 890 |
* |
867 | 891 |
* @param listener |
868 | 892 |
* AtomicEventListener. |
869 | 893 |
* |
870 |
* @return True si se ha a?adido correctamente.
|
|
894 |
* @return True si se ha a�adido correctamente.
|
|
871 | 895 |
*/ |
872 | 896 |
public boolean addAtomicEventListener(AtomicEventListener listener) { |
873 | 897 |
return eventBuffer.addAtomicEventListener(listener); |
... | ... | |
902 | 926 |
/** |
903 | 927 |
* Evento Layer. |
904 | 928 |
* |
905 |
* @author Fernando Gonz?lez Cort?s
|
|
929 |
* @author Fernando Gonz�lez Cort�s
|
|
906 | 930 |
*/ |
907 | 931 |
public class LayerEventListener implements LayerCollectionListener { |
908 | 932 |
/** |
... | ... | |
1019 | 1043 |
} |
1020 | 1044 |
|
1021 | 1045 |
/** |
1022 |
* Asigna la capa gr?fica
|
|
1046 |
* Asigna la capa gr�fica
|
|
1023 | 1047 |
* @param graphicLayer |
1024 | 1048 |
*/ |
1025 | 1049 |
public void setGraphicsLayer(GraphicLayer graphicLayer) { |
Also available in: Unified diff