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.
|
Utiliza como cursor el del MapOverviewListener
La figura 1 muestra el diagrama de clases que resume la implementación de MapOverview según se ha explicado: