Modelo de objetos simplificado
==============================
.. |mo1| image:: images/modelo_de_objetos_simplificado.png
Aqui podemos ver um esquema com os componentes de uso mais comum desde scripting, a relação entre eles e como podemos acessar a eles a partir do nosso script. Além disso, podemos navegar até a navegação da classe Java clicando sobre o componente.
.. note::
Desenvolvedores Java e usuários com conhecimentos sobre UML: O diagrama e comentários estão pensados para que seja o mais entendível possível para um usuário sem conhecimentos de java ou de UML, não para ser estrito à nomeclatura UML.
.. raw:: html
Como interpretar o diagrama
++++++++++++++++++++++++++++
No diagrama anterior podemos ver:
- **Caixas em amarelo**, que representam os objetos que podemos encontrar e com os quais podemos trabalhar.
- **Caixas em verde**, nos indicam ações que podemos realizar a partir de nosso script. Por exemplo, podemos ver:
.. figure:: images/interpretar-funcion.png
:align: center
Deve ser interpretado como tendo disponível uma **função**, ``currentProject()``, que podemos executar desde nosso script para obter o objeto com o qual está relacionada, neste caso o **project**. Para os elementos etiquetados como **função** precisaremos ter importado o módulo ``gvsig``::
from gvsig import *
- **Caixas em azul**, nos indica que se trata de uma entidade abstrata. Nunca encontraremos objetos deste tipo. Fazem referência de forma genérica a um grupo de objetos com características comuns; por exemplo, teremos um :javadoc:`Document ` que agrupa as características comuns de :javadoc:`ViewDocument `, :javadoc:`TableDocument ` ou :javadoc:`LayoutDocument `. No diagrama podemos encontrar, por exemplo:
.. figure:: images/interpretar-herencia.png
:align: center
Aqui temos uma entidade :javadoc:`FFrame ` abstrata, nunca encontraremos objetos deste tipo, o que encontraremos serão objetos do tipo :javadoc:`FFrameView `, :javadoc:`FFramePicture ` ou :javadoc:`FFrameText `, e nos indica que todos os objetos concretos relacionados con :javadoc:`FFrame ` terão um conjunto de atributos e operações comuns.
- **Associações entre objetos**, que nos indicam que a partir de um objeto podemos obter outro ou um conjunto de outros. Por exemplo:
.. figure:: images/interpretar-asociacion.png
:align: center
Nos demonstra que se dispomos de um objeto :javadoc:`LayoutDocument `, podemos obter o objeto :javadoc:`LayoutContext ` invocando a operação ou método ``getLaypoutContext``::
laypoutContext = layoutDocument.getLaypoutContext()