La comunidad de Eclipse utiliza una convención para los identificadores de los plug-in's, así como para los espacios de nombres de los proyectos. Esto se debe a que muchos plug-ins terminan siendo las fuentes de otros plug-ins, y es necesario que estos sean identificados únivocamente mediante un identificador único global dentro de la comunidad.
Como cada plug-in se desarrolla como un proyecto, esta convención se adopta tanto para identificar el plug-in como para el nombre del proyecto, es decir, utilizaremos el mismo nombre como identificador y nombre de proyecto.
Otra utilidad que presenta este convenio, es que podemos saber el dominio al que pertenece el plug-in, es decir, si tenemos un plug-in que se llama "com.coolimagingproject.coolimaging", sabremos que el propietario de este plug-in es www.coolimagingproject.com. Por lo que debería asegurarse que tiene los derechos del dominio al que hace referencia.
Ambas prácticas son convenciones y no reglas. Por ello, podríamos tener un proyecto llamado colorOperations y establecer el identificador del plug-in como "com.coolimagingproject.colorOperations", pero se hace más difícil recordar que proyecto se empareja con que plug-in.
Como buena práctica de programación se recomienda a los desarrolladores realizar clases bien definidas. Por eso para los plug-ins de operaciones de la aplicación se recomienda realizar una clase Operador, la cuál podría utilizarse en otras aplicaciones al no ser dependiente de la aplicación. Y un OperadorAplicacion, que haga uso del Operador y que si será dependiente de la aplicación. Los ejemplos mostrados a lo largo de este manual hacen uso de esta filosofía de programación.
Algunas operaciones requieren de una serie de parámetros para poder ser ejecutadas, este es el caso del operador rotación, que necesita conocer el ángulo de rotación; el centro de rotación; el método de interpolación usado para corregir los errores que surgen a consecuencia de realizar la rotación; el método de extensión del borde para tratar los píxeles que caen fuera de la imagen, y un campo que indica si se quiere que la imagen sea centrada tras la rotación.
Estos parámetros se pueden tratar como int
(y no utilizar ningún nombre simbólico), o como CONSTANTES
como en el OperadorRotacion.java
.
Recomendación: haga uso de constantes para facilitar la comprensión del código.
OperadorRotacion.java
|
|
Los valores de estas constantes, son las que se extraen del
PanelInfoOperador
a través del método void getParametros(ConjuntoParametroOperador parametros)
,
que posteriormente el operador usará para operar.
PanelInfoOperadorRotacion.java
|
public void getParametros(ConjuntoParametroOperador parametros){
|
En el objeto parametros
se insertan todos los parámetros que se pueden extraer del panel de rotación. Como
puede apreciarse, cada parámetro insertado (mediante la función insertarParametro()
) es un objeto de tipo
ParametroOperador
. Cada parámetro tiene asociado dos elementos: un identificador del parámetro (valor int
)
y un Object
que representa el valor del parámetro. Por ejemplo, el primer parámetro que se inserta se corresponde con el
ángulo de rotación de la imagen. El valor numérico del ángulo de rotación es extraído del campo textual del panel que permite
al usuario introducir el ángulo de rotación. Dicho valor numérico se corresponde con el valor del parámetro.
El parámetro, aparte de un valor, tiene asociado un identificador en forma de entero. Así por ejemplo, el primer parámetro
insertado en el ejemplo de arriba tiene un identificador cuyo valor es la constante
OperadorRotacion.PARAMETRO_ANGULO_ROTACION
. El identificador del parámetro no es más que un valor entero
que el usuario, de forma arbitraria, asigna a cada uno de los parámetros que requiere su operación para ejecutarse. Por ejemplo,
el usuario podría asignar el identificador 100 al ángulo de rotación o el identificador 101 al centro de rotación. Es importante
que, sin embargo, no haya parámetros con identificadores REPETIDOS. Así pues, el usuario no podría asignar tanto al ángulo
de rotación como al centro de rotación identificadores ambos de 100. Es también importante notar que EL USUARIO NO PUEDE HACER
USO DE LOS IDENTIFICADORES QUE VAN DEL 0 AL 99. Dichos identificadores están reservados por la aplicación, y si el usuario
hace uso de ellos el resultado de la operación puede ser inesperado.