La librería con la presentación
Al igual que sucedía con la parte de la lógica, la presentación también estará dividida en dos proyectos, por un lado el API y por otro la implementación. - org.gvsig.visor.swing.api - org.gvsig.visor.swing.impl De forma similar a como sucedía con la lógica en la presentación, en el proyecto del API sólo tenemos los interfaces y clases abstractas que definen nuestro API. El API de la parte de presentación está formado por el interface del *manager* junto con una serie de clases abstractas que definen el API público de nuestros componentes, generalmente componentes que extenderán al componente de swing JPanel. Son clases abstractas y no interfaces debido a que swing no presenta un modelo de interfaces para sus componentes. En nuestro ejemplo, el único componente que tendremos es el componente visual asociado a una manzana, el *JVisorBlockPanel*,que extiende de *JPanel* añadiéndole a nivel de API un único método que nos permita obtener el componente lógico *VisorBlock* que tiene asociado en un momento dado. En la parte de implementación nos encontraremos con la clase *DefaultJVisorBlockPanel* que recibe en su constructor la instancia de *VisorBlock* de la que debe presentar sus datos. En general la parte de presentación no tiene una complicación mas allá de la propia que pueda tener el manejo de swing. Lo único a resaltar es que la parte de presentación no debería usar nada que no este expuesto en el API de nuestra librería de lógica.








