MapOverview
Componente de tipo MapControl diseñado para utilizarlo como vista en miniatura de otro.
Introducción ------------- *MapOverview* es un componente Java de GUI de tipo MapControl_, que actúa como localizador de un objeto *MapControl* *(llamémoslo mc_as_obj)*. Ambos contienen la información en la misma proyección. El *extent ajustado* de *mc_as_obj* será dibujado como un rectángulo con el borde rojo, y semitransparente en *MapOverview*, utilizando para ello un *doble-buffer*. *MapOverview* simula una sola herramienta, denominada *"zoomtopoint"*, con la que el usuario podrá seleccionar de distintos modos un área rectangular que servirá de *extent* al puerto de vista de *mc_as_obj*, *(el área final seleccionada será la dicho extent, ajustado)*. El comportamiento simulado por *MapOverview* es una composición de 4 Behavior_, en combinación con 3 ToolListener_, más las operaciones *zoom in* y *zoom out* que simula *MapControl* : +-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+ | **Behavior** | **ToolListener** | **Herramienta simulada** | | | | | +===================================+===================================+=======================================================================================+ | *PointBehavior* | *MapOverviewListener* | Centra el *adjusted extent* en el punto seleccionado con el 2º o 3º botón del ratón. | +-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+ | *RectangleBehavior* | *MapOverviewChangeZoomListener* | Realiza un zoom ajustando el *extent* al área rectangular seleccionada con 1º botón | | | | del ratón. | +-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+ | *DraggerBehavior* | *MapOverviewChangeZoomListener* | Dibuja el área rectangular seleccionada según se arrastra el 1º botón del ratón. | +-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+ | *DraggerBehavior* | *MapOverviewPanListener* | Permite arrastrar el área rectangular seleccionada con el 3º botón del ratón. | +-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+ | | | Aparte soporta las herramientas ofrecidas por *MapControl* nativamente, moviendo la | | | | rueda del ratón. | | | | | | | | * *Zoom In* centrado en el punto que indica el cursor. | | | | * *Zoom Out* centrado en el punto que indica el cursor. | +-----------------------------------+-----------------------------------+---------------------------------------------------------------------------------------+ Utiliza como cursor el del *MapOverviewListener* .. figure:: ../fmap/images/mapcontrol/toollistenericons/ictlcruxcursor.png :align: center Cursor de MapOverviewListener Diagrama --------- La *figura 1* muestra el diagrama de clases que resume la implementación de *MapOverview* según se ha explicado: .. figure:: images/projectanddocuments/vista/mapoverview/dcmapoverview.png :height: 380 :width: 893 :align: center *Figura 1: diagrama de clases simplificado de MapOverview.* Captura -------- .. figure:: images/projectanddocuments/vista/mapoverview/ejmapoverview.png :height: 329 :width: 509 :align: center *Figura 2: se muestra una vista de gvSIG, en donde el usuario ha seleccionado en el localizador un área rectangular que abarca toda la Comunidad Valenciana. Una vez seleccionada, se actualiza la vista principal, (MapControl), con el extent seleccionado en el localizador, ajustado al área disponible para visualizarlo.* .. _Behavior: ../../../fmap/dirmapcontrol/behavior .. _MapControl: ../../../fmap/dirmapcontrol/mapcontrol .. _ToolListener: ../../../fmap/dirmapcontrol/toollistener