Personal tools
You are here: Home Development Documents gvSIG desktop 1.0 / 1.1 gvSIG Andami Plugins y extensiones El fichero config.xml
Document Actions

El fichero config.xml

by César Martínez Izquierdo last modified 2010-06-01 22:45
La filosofía en la que se apoya la extensibilidad de Andami es la siguiente: existen unas clases especiales, llamadas **extensiones**, que implementan la interfaz *IExtension*, la cual incluye un método *execute()* (entre otros). En el fichero *config.xml* del plugin, se definen una serie de elementos de interfaz de usuario que se van a añadir a la aplicación (herramientas, menús y controles de la barra de estado), y se asocia cada uno de estos elementos con una extensión. En concreto, cuando el usuario pinche en una herramienta o una entrada de menú, Andami ejecutará el método *execute* de la extensión asociada. De esta forma, la extensión realizará las acciones necesarias para ejecutar la operación solicitada, posiblemente apoyándose en otras clases o librerías del plugin.

Vemos por tanto que la extensión es el punto de acceso a las nuevas funcionalidades aportadas por el plugin, y que los elementos de interfaz de usuario (definidos en el *config.xml*) junto con la extensión asociada constituyen el nexo entre el resto de la aplicación y el plugin.

Ejemplo de fichero config.xml
---------------------------------

.. code-block:: xml

  
  
    
    
    
    
      
      
      
          
          
            
          
      
    
  

El fichero utiliza una sintaxis XML, que básicamente implica que tiene una estructura marcada por etiquetas que deben abrirse y posteriormente cerrarse en orden inverso al orden de apertura. Se puede encontrar más información sobre XML en el `sitio web del W3 Consortium `_.


Etiquetas permitidas
-------------------------

A continuación, se describe en detalle cada una de las etiquetas permitidas. No obstante, dentro de la distribución del código fuente de gvSIG, existe un fichero llamado *plugin-config.xsd*, situado dentro de *_fwAndami/schemas*, donde se describen formalmente todas las etiquetas permitidas y el tipo de valores que aceptan. Este fichero está escrito en lenguaje XSD Schema, un lenguaje de descripción de sintaxis XML. Ese fichero debe constituir la referencia principal a la hora de conocer las etiquetas permitidas.

.. figure:: ../andami.img/plugin-config.png
   :alt: Jerarquía de etiquetas válidas de plugin-config.xml

   Jerarquía de etiquetas válidas de plugin-config.xml

**Cabecera**

El fichero XML debe ir encabezado por una cabecera como la siguiente:

.. code-block:: xml

  

Es importante que el primer carácter **<** sea el primero del fichero (es decir, que no haya ningún carácter en blanco antes de la cabecera), de lo contrario el fichero se leerá incorrectamente.

+ **version**: Indica la versión de estándar XML que vamos a usar (en nuestro caso, "1.0")

+ **encoding**: Indica la codificación de caracteres con la que vamos a salvar el fichero en disco. La codificación que especifiquemos aquí debe coincidir con la codificación que realmente usemos en el momento de salvar el fichero (los editores de texto normalmente permiten especificar la codificación en algún apartado). Algunas codificaciones típicas son "UTF-8", "ISO-8859-15" e "ISO-8859-1"


****

Etiqueta que simplemente marca el inicio y el fin del fichero de configuración; es la raíz del árbol XML.

.. _resourceBundle:

****

Indica el nombre base que tendrán los ficheros de traducción. Por ejemplo, si escribimos **, los ficheros de traducciones se llamarán *text.properties*, *text_en.properties*, etc.

****

Indica los plugins de los que va a depender nuestro plugins, a nivel de librerías. Esto significa que si deseamos usar algunas clases o librerías que estén en un plugin distinto, debemos declarar una dependencia de ese plugin. Debe haber una entrada ** por cada plugin del que dependamos.

Las dependencias determinan también el orden de carga de plugins, de forma que un plugin siempre se carga después de que sus dependencias han sido ya cargadas. Normalmente, todos los plugins dependen del plugin gvSIG (*com.iver.cit.gvsig*), por lo que este plugin se carga el primero.

****

Establece el directorio del que se leerán las librerías de nuestro plugin. Normalmente suele usarse ** (para indicar el directorio raíz del plugin), o bien ** (para indicar el subdirectorio *lib*). Dos plugins distintos pueden tener versiones distintas de una misma librería, y ambas funcionarán correctamente sin interferencias, salvo en los siguientes supuestos:

- Si un plugin A declara una dependencia de plugin B, y ambos poseen la misma librería pero en diferente versión: el plugin B usará su propia versión sin ningún problema; el plugin A usará su propia versión si el plugin B se carga después de A, en caso contrario se usará la versión de B.

- Si existe un plugin A que posee una librería, y esta librería está también en el CLASSPATH inicial de Andami (declarado al lanzar Andami), el plugin A usará la versión presente en el CLASSPATH inicial.

****

Indica el comienzo de un grupo de etiquetas (*label*) para la barra de estado. Cada grupo de etiquetas (*label-set*) está asociado a una clase, y sólo es visible cuando la ventana visible es instancia de dicha clase. Acepta los siguientes atributos:

- **class-name** Nombre de la clase asociada a este *label-set*. Las etiquetas del *label-set* sólo serán visibles cuando la ventana activa sea instancia de esta clase.

**

View source document


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: