Tiempo de lectura: 6 minutos

En anteriores entregas hemos visto algunas de las características de Netbeans Platform. Este framework, que viene con el IDE Netbeans, facilita mucho el desarrollo de aplicaciones de escritorio. Se encarga de gestionar de forma automática muchos elementos útiles como la organización de la información en proyectos y carpetas, la gestión de las ventanas de la aplicación (ancladas en zonas o maximizadas) o la comunicación con el usuario. Por ejemplo, para nuestro gestor de tareas tendremos un módulo que se encarga de las tareas, un módulo de calendario o un módulo de sincronización entre otros elementos. Si en un futuro queremos añadir un módulo para escribir con Markdown, sólo habrá que conectarlo a la aplicación base y empezar a usarlo. En esta entrega veremos como crear módulos y acciones para nuestra aplicación.

Conocimientos previos

En este punto tenéis que haber seguido la entrega anterior, en la que se explica como instalar Java 11 así como los pasos para instalar Netbeans 11.3. Se puede seguir el artículo con versiones anteriores de Netbeans pero algunas cosas cambiarán. Recordad también que Netbeans 8.2 sólo se puede usar con Java 8. Si queréis usarlo con una versión posterior de Java, tendréis que pasar a Netbeans 11.3.

Ventana inicial de la entrega 3

Ventana inicial de la entrega 3

Creación de un nuevo módulo

A continuación veremos los pasos para crear un nuevo módulo. Se pueden hacer todas las conexiones de forma manual, pero por simplificar el proceso, usaremos el esqueleto que genera Netbeans Platform. Recordad que el propio asistente que vamos a usar a continuación es un módulo de Netbeans Platform y lo podemos usar a voluntad. Seleccionamos en el menú de Netbeans, New, New Project. En el árbol de proyectos tenemos que buscar la categoría Netbeans Modules dentro de la carpeta Java with Ant. Seleccionamos Module.

Creación de un nuevo módulo

Creación de un nuevo módulo

Module Suite incluye los módulos de Netbeans Platform junto con otros módulos extras que si se incluyen en el IDE. Más adelante los podemos añadir sin problemas. Por su parte, Module, permite crear un nuevo módulo para añadir una funcionalidad. La última opción, Library Wrapper Module, se utiliza cuando queremos añadir un archivo .jar a la aplicación. Al hacerlo de esta forma, cualquier módulo de la aplicación podrá usarlo.

Pulsamos en el botón Next para pasar al siguiente paso del asistente. Tenemos en la parte izquierda un listado con los pasos y en la parte inferior diferentes elementos para interactuar con el asistente. Los pasos de un asistente pueden ser fijos o variables dependiendo de la elección del usuario.

Nombre del módulo

Nombre del módulo

Rellenamos el nombre y dejamos los valores por defecto. Al crear el módulo, se añade de forma automática al listado de módulos que puede usar Netbeans Platform Application. En el primer campo tenemos que poner la jerarquía del código. Para el ejemplo es com.innerzaurus.todolist. Dejamos el nombre del módulo por defecto. En el último control nos aparece la ruta al archivo Bundle.properties. En este archivo se guardarán todas las cadenas de texto que se usan en el módulo, paneles incluidos. La última opción genera también unos elementos extras en el módulo. No entraré de momento en esta opción.

Configuración básica del módulo

Configuración básica del módulo

Al finalizar el asistente, se añade el módulo al listado de proyectos abiertos y se vincula también a la aplicación principal (InnerZaurus en nuestro ejemplo). De momento sólo hemos preparado el esqueleto para el código. El siguiente paso es crear una acción (Action) para conectarlo con la aplicación principal.

Módulo de tareas añadido al proyecto

Módulo de tareas añadido al proyecto

Action, o la forma de conectar un módulo con Netbeans Platform

Pulsamos en File, New y seleccionamos la categoría Module Development. El Action permite asociar una acción con un bloque de código o un panel. Por ejemplo, podemos crear una acción nueva que permita crear una Nueva tarea. Al pulsar el usuario en esa opción del menú o botón de la gráfica, se ejecutará el código. Ahora estoy simplificando los conceptos para que sean más sencillos de seguir. Más adelante entraremos en detalle con más profundidad.

Creación de un Action

Creación de un Action

La primera característica que tiene un Action es la activación. En un programa tradicional, gestionaríamos de forma manual la activación de los botones. Por ejemplo, queremos que la acción se active siempre o sólo cuando el usuario selecciona una categoría de Tareas en el árbol de proyectos. Con Netbeans Platform la cosa cambia un poco. Definimos el Action y algunos aspectos básicos del comportamiento. Después de hacer eso, nos olvidamos de la gestión ya que la hará el entorno por nosotros. El Action se puede activar siempre (valor por defecto) o dependiendo del tipo de dato que seleccionamos. Dejamos marcada la primera opción.

Activación del Action

Activación del Action

Como he comentado antes, el Action puede aparecer en diferentes elementos del interfaz de usuario: menús, barra de botones, etc. Para definir los elementos, tenemos la siguiente pantalla del asistente. Las acciones se pueden agrupar en categorías, en este caso la hemos puesto dentro de File, y después se eligen los elementos en los que aparecerá. En nuestro ejemplo mostraremos el Action en el menú File y en la barra de herramientas de File. También se puede asociar una combinación de teclas para acceder al Action directamente.

Registro del actión en el GUI

Registro del Action en el GUI

Configuramos los últimos elementos: nombre de la clase, nombre que se mostraré en el menú o el icono. Como icono he elegido uno del tema de iconos Papirus. Se puede elegir cualquier icono en formato PNG o GIF. Os recomiendo usar iconos en formato PNG porque permiten usar transparencias.

Nombre, icono y localización

Nombre, icono y localización

Al finalizar el asistente se crearán dos archivos, uno con la clase y otro con el icono. Un detalle interesante es que los iconos pueden tener diferentes tamaños. Por ejemplo, la barra de iconos puede tener el tamaño estándar o uno mayor. No es necesario que gestionemos el cambio de tamaño de forma manual, sólo habría que copiar otra versión del icono que tenga la resolución que necesitamos. En la captura se puede observar que falta la imagen con una resolución de 24×24. Más adelante lo arreglaremos.

En la nueva clase hay un método llamado actionPerformed(). Cuando pulsemos en el menú o en el botón de la barra de herramientas, se llamará a este método.

Código del Action creado

Código del Action creado

Vamos al método y añadimos este código. Al ejecutar el ActionPerformed se abrirá un panel de notificaciones que está predefinido en Netbeans Platform.

Código de ejemplo del Action

Código de ejemplo del Action

Pulsamos ALT+ENTER en las líneas que aparecen en rojo para cargar el módulo. Esperamos un poco y seleccionamos el módulo Dialogs API. Al pulsar OK, se añadirá como dependencia al módulo de tareas y se incluirán las líneas de importación necesarias.

Añadir dependencia del módulo

Añadir dependencia del módulo

Ejecutamos el programa y veremos el nuevo icono que aparece en la barra de herramientas.

Action ejecutada

Action ejecutada

Conclusiones

En esta entrega hemos definido un nuevo módulo en Netbeans Platform. Sobre este módulo añadiremos todas las funciones relacionadas con las tareas. También hemos visto como crear un Action, una conexión entre el módulo y la plataforma. Al pulsar sobre el Action en el menú o sobre la barra de herramientas, se mostrará un panel de notificaciones. Este panel está predefinido también como módulo e incluye muchos elementos extras que usaremos más adelante.

El siguiente paso sería crear un nuevo tipo de dato, para guardar las tareas, y asociar ese tipo de datos con un conjunto de componentes. Al hacer doble clic sobre el archivo de la tarea, se abrirá una pestaña en la parte central de la aplicación con los componentes que están asociados con ese tipo de datos. Por ejemplo, abrimos una tarea y nos aparecerán dos pestañas: una con un pequeño calendario y otra con detalles de la tarea.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.