Modelo de objetos simplificado
==============================
.. |mo1| image:: images/modelo_de_objetos_simplificado.png
Aquí podemos ver un esquema con los componentes de uso más común desde scripting, la relación entre ellos y cómo podemos acceder a ellos desde nuestro script. Además podemos navegar a la información de la clase Java pulsando sobre el componente.
.. note::
Desarrolladores Java y usuarios con conocimientos sobre UML. El diagrama y comentarios está pensado para que sea lo más entendible posible por un usuario sin conocimientos de java ni UML, no para ser estricto con la nomenclatura UML.
.. raw:: html
Cómo interpretar el diagrama
++++++++++++++++++++++++++++
En el diagrama anterior podemos ver:
- **Cajas en amarillo**, que representan a objetos que podemos encontrarnos y con los que podemos trabajar.
- **Cajas en verde**, nos indican acciones que podemos realizar desde nuestro script. Por ejemplo, podemos ver:
.. figure:: images/interpretar-funcion.png
:align: center
Lo interpretaremos como que disponemos de una **función**, ``currentProject()``, que podemos ejecutar desde nuestro script para obtener el objeto con el que está relacionada, en este caso el **project**. Para los elementos etiquetados como **función** precisaremos haber importado el modulo ``gvsig``::
from gvsig import *
- **Cajas en azul**, nos indica que se trata de una entidad abstracta. Nunca encontraremos objetos de este tipo. Hacen referencia de forma genérica a un grupo de objetos con características comunes; por ejemplo, tendremos un :javadoc:`Document ` que agrupa las características comunes de :javadoc:`ViewDocument `, :javadoc:`TableDocument ` o :javadoc:`LayoutDocument `. En el diagrama podemos encontrarnos, por ejemplo:
.. figure:: images/interpretar-herencia.png
:align: center
Aquí tendríamos una entidad :javadoc:`FFrame ` abstracta, no nos encontraremos nunca objetos de este tipo, lo que nos encontraremos será objetos de tipo :javadoc:`FFrameView `, :javadoc:`FFramePicture ` o :javadoc:`FFrameText `, y nos indica que todos los objetos concretos relacionados con :javadoc:`FFrame ` tendrán un conjunto de atributos y operaciones comunes.
- **Asociaciones entre objetos**, que nos indican qué a partir de un objeto podemos obtener otro o un conjunto de otros. Por ejemplo:
.. figure:: images/interpretar-asociacion.png
:align: center
Nos indica que si disponemos de un objeto :javadoc:`LayoutDocument `, podemos obtener el objeto :javadoc:`LayoutContext ` invocando a la operación o método ``getLaypoutContext``::
laypoutContext = layoutDocument.getLaypoutContext()