Viruz Blog
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Nodos en NetBeans Platform parte 4

Ir abajo

Nodos en NetBeans Platform parte 4 Empty Nodos en NetBeans Platform parte 4

Mensaje  Admin (Viruz) Mar Nov 27, 2012 3:15 am

En tutorial que es la 4ta entrega vamos a retocar los últimos detalles como son: acciones, iconos en el nodo raíz, entre otros. Primero tocaremos el tema de las acciones los cuales nos permitirán mediante un JPopMenu ejecutar dichas funciones puestas para el usuario.

Lo que necesitas conocer
  • Dependencias en NBP
  • Nodos en NBP (Parte 2)
  • Nodos en NBP (Parte 3)
Pasos:

1. Primero agregaremos una dependencia para que podamos importar las acciones, la cual tiene por nombre "Action's API".
[Tienes que estar registrado y conectado para ver esa imagen]
2. Debemos abrir nuestras clases CategoriaNodo y CategoriaNodo2 que como hay que recordar al heredar de la clase AbstractNode son las encargadas de llevar las características de los nodos llámese nombre, iconos, descripción, etcétera.

Y no siendo la excepción para las acciones que se lleguen a realizar en los nodos, para ello ocuparemos el método getActions() donde lo incluiremos en las 2 clases quedando de la siguiente manera:
public Action[] getActions(boolean popup) {
return new Action[] {
SystemAction.get( CopyAction.class ),
SystemAction.get( CutAction.class ),
SystemAction.get( PasteAction.class),
SystemAction.get( DeleteAction.class )
};
}

Como se conoce al agregar nuevas clases debes agregar importaciones y estas quedan de la siguiente forma:

Spoiler:
Con estas acciones agregas se cuentan con las 4 funciones principales con las que siempre cuenta una aplicación como son: copiar, cortar, borrar y pegar.

3. Después necesitamos abrir nuestro TopComponent que contiene el componente BeanTreeView (donde se encuentran los nodos) y en la parte del constructor agregamos las siguientes líneas que servirán para poder habilitar nuestras acciones de lo contrario se verán pero no podrán ser ejecutadas.
Spoiler:
Agrega las respectivas importaciones dentro de la ventana y se tendrá un resultado como el que se muestra a continuación:

Spoiler:
[Tienes que estar registrado y conectado para ver esa imagen]
Ahora toca el turno de ver como agregar un icono a nuestro Nodo Raíz que tiene por nombre Mi Categoría.

Pasos:

1. Primero se debe agregar una nueva clase de java llamada "NodoRaiz.java" y hacemos que herede de AbstractNode y contendrá los métodos getIcon() y getOpenedIcon().

El primero se encarga de visualizar el icono que esta por defecto y el segundo cambia el icono cuando el nodo raíz se despliegue.
import java.awt.Image;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
import org.openide.util.Utilities;

/**
*
* @author Viruz
*/
public class NodoRaiz extends AbstractNode {

public NodoRaiz(Children children) {
super(children);
}

public Image getIcon(int type) {
return Utilities.loadImage("org/prueba/modulo/arrow_right.png");
}

public Image getOpenedIcon(int type) {
return Utilities.loadImage("org/prueba/modulo/arrow_down.png");
}
}

2. Por último debemos cambiar la siguiente línea de código en el constructor de la ventana:

Spoiler:
Por esta nueva:

Spoiler:
Listo debemos tener el siguiente resultado:
[Tienes que estar registrado y conectado para ver esa imagen]
Ya para finalizar este tutorial vamos a conocer a como ocultar este nodo raíz que le acabamos de poner un icono representativo y esto va a depender del usuario si así lo desee.

Pasos:

1. Esto se puede realizar añadiendo la siguiente línea de código en el constructor:

Spoiler:
Y con esto tendremos el resultado esperado:
[Tienes que estar registrado y conectado para ver esa imagen]

Autor: Viruz study
Enlace: Nodos en NetBeans Platform (Parte 4)
Admin (Viruz)
Admin (Viruz)
Admin

Mensajes : 148
Fecha de inscripción : 23/09/2012
Edad : 35
Localización : Desktop

https://viruz.foroactivo.mx

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.