Personal tools
You are here: Home gvSIG Projects gvSIG Desktop Documentation Developers documentation org.gvsig.fmap.geom 2.0.0 Operations Creación de operaciones
gvSIG Desktop
gvSIG Desktop

Cached time 11/22/13 09:03:10 Clear cache and reload

 
Document Actions

Creación de operaciones

by Jorge Piera last modified 2010-09-06 16:16
.. include-document:: org.gvsig.fmap.geom/reference-links
   :rest:

En gvSIG 2.0 se ha definido el concepto de operación, que no es más que una clase que hereda de GeometryOperation_, que implementa una determinada operación y que se asocia a un tipo de geometría (GeometryType_) determinado.

La clase GeometryOperation_ forzará a implementar dos métodos: por un lado estará el *getOperationInxex* que deberá devolver el código interno de la operación. Las operaciones deben de tener un nombre pero en tiempo de ejecución gvSIG establecerá una correspondencia entre los nombres de operaciones y los códigos. Por convenio, todas las operaciones deberán tener una variable pública y estática de tipo int que se incializará llamdo al método *getGeometryOperationCode* del GeometryManager_. Este método fijará el valor del código de operación que podrá ser consultado para ejecutar una operación concreta por una tercera clase.

Además del *getOperationInxex*, una operación tendrá un método llamado *invoke* que será el que se invoke cuando se tenga que ejecutar la operación. Los parámetros de entrada son la geometría sobre la cual se aplica la operación y un contexto de operación que se comentará más adelante.

En el siguiente ejemplo se va a crear una operación llamada *println* que al invocarse imprime por consola la geometría sobre la cual se ejecuta.

.. code-block:: java

  public class PrintLn extends GeometryOperation {
    public static final String NAME = "println";
    public static final int CODE = GeometryLocator.getGeometryManager().getGeometryOperationCode(NAME);

    public int getOperationIndex() {
      return CODE;
    }

    public Object invoke(Geometry geom, GeometryOperationContext ctx) throws GeometryOperationException {
      System.out.println(geom.toString());
      return null;
    }
  }

Una vez que hemos creado la operación deberemos registrarla en la aplicación. El siguiente apartado muestra un ejemplo de cómo hacerlo.




View source document

View source document Get permanent link


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: