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 6

Ir abajo

Nodos en NetBeans Platform parte 6 Empty Nodos en NetBeans Platform parte 6

Mensaje  Admin (Viruz) Miér Nov 28, 2012 12:51 am

Ahora que ya se conoce un poco más sobre la ventana de propiedades de la plataforma de NetBeans toca el turno de ver como poder enlazarla con nuestros nodos.

¿Que es lo que veremos en este tutorial? En esta entrada tendremos en cuenta como ver las propiedades de nuestros nodos, como poder editar desde la ventana de propiedades, como crear diferentes categorías en la ventana.

Lo que necesitas saber
  • Ventana de propiedades en NBP
  • Nodos en NBP (Parte 4)
  • Nodos en NBP (Parte 5)
Empezando por como enlazar nodos con la ventana de propiedades debemos realizar lo que se pone a continuación.

Pasos:

1. Ahí que abrir las clases Categoria2 y CategoriaNodo2 ya que son las clases con las que trabajaremos ahorita.

Dentro de Categoria2 como se ha mencionado es la clase que contiene los métodos set() y get(), así que haremos beneficio de ellos y ocuparemos los métodos get con los que cuenta:

  • getNumber().
  • getCategory().
  • getTitle().
2. Ahora pasamos a CategoriaNodo2 y agregamos el método createSheet() junto con sus respectivas importaciones quedando de la siguiente manera el código.

import javax.swing.Action;
import org.openide.ErrorManager;
import org.openide.actions.CopyAction;
import org.openide.actions.CutAction;
import org.openide.actions.DeleteAction;
import org.openide.actions.PasteAction;
import org.openide.nodes.AbstractNode;
import org.openide.nodes.Children;
import org.openide.nodes.PropertySupport;
import org.openide.nodes.Sheet;
import org.openide.util.actions.SystemAction;
import org.openide.util.lookup.Lookups;

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

private Categoria2 categoria2;

public CategoriaNodo2(Categoria2 key) {
super(Children.LEAF, Lookups.fixed( new Object[] {key} ) );
this.categoria2 = key;
setDisplayName(key.getTitle());
setIconBaseWithExtension("org/prueba/modulo/page_red.png");
}

@Override
public boolean canCut() {

return true;
}

@Override
public boolean canDestroy() {
return true;
}

@Override
public Action[] getActions(boolean popup) {
return new Action[] {
SystemAction.get( CopyAction.class ),
SystemAction.get( CutAction.class ),
SystemAction.get( PasteAction.class ),
SystemAction.get( DeleteAction.class ),
new MiAccion()
};
}

@Override
protected Sheet createSheet() {
Sheet sheet = Sheet.createDefault();
Sheet.Set set = Sheet.createPropertiesSet();
Categoria2 obj = getLookup().lookup(Categoria2.class);

try {
Property numeroProp = new PropertySupport.Reflection(obj, Integer.class, "getNumber", null);
Property categoriaProp = new PropertySupport.Reflection(obj, String.class, "getCategory", null);
Property tituloProp = new PropertySupport.Reflection(obj, String.class, "getTitle", null);

numeroProp.setName("Index");
categoriaProp.setName("Categoría");
tituloProp.setName("Título");

set.put(numeroProp);
set.put(categoriaProp);
set.put(tituloProp);

} catch (NoSuchMethodException ex) {
ErrorManager.getDefault();
}
sheet.put(set);
return sheet;
}
}


Aparecen 2 métodos uno de ellos es setName() el cual declara el nombre de cada propiedad en la ventana y el método put() es el que asigna el valor que contendrá esa casilla.

3. Por último en nuestra aplicación vamos a la opción de Windows>Properties, para poder visualizar la ventana de propiedades y debes de tener el siguiente resultado:
[Tienes que estar registrado y conectado para ver esa imagen]
Ya se conoce como ver las propiedades declaradas en una clase que tiene un encapsulamiento pero también se pueden crear diferentes categorías y se apreciará como hacerlo.

Pasos:

1. Es muy simple realizar este ejercicio y para ello dentro de nuestra clase CategoriaNodo2 en el método createSheet() agregamos otra propiedad, de la siguiente manera:
Spoiler:
2. Para que no aparezca vacía esta categoría asignamos un campo de los 3 que se tienen, en el caso de ejemplo sera título.

Spoiler:
3. Por último agregamos la propiedad nueva a la clase principal Sheet.

Spoiler:
[Tienes que estar registrado y conectado para ver esa imagen]
Los tabuladores son muy importantes en la ventana de propiedades y es que la función es mantener mas organizada todas las categorías que llegue a tener un componente gráfico y así poder hacer menos extenso, por lo que vamos a crear una tabulación.

Pasos:

1. En primera se debe crear otra categoría para tomarla en esta nueva tabulación esta será llamada set3.

2. Vamos a la clase Categoria2 para crear otro campo de tipo Date y agregamos la importación y los siguientes métodos.
Spoiler:
3. Se debe Regresar a la clase CategoriaNodo2 y agregamos la línea de código que se presenta y tener un resultado como se muestra en la imagen:
Spoiler:
[Tienes que estar registrado y conectado para ver esa imagen]
Y te has de preguntar ¿si se puede modificar los datos en la ventana de propiedades?. La respuesta es sí (si no que chiste tendría) y veremos como poder hacerlo, para el ejemplo vamos a modificar el campo de propiedades del campo fecha.

Pasos:

1. En la clase Categoria2 debemos agregar los siguientes métodos que son los que nos permitirán realizar cambios:
Spoiler:
Ademas de agregar la siguiente declaración en la zona de las variables y constantes:

Spoiler:
2. También debemos hacer cambios en el método de setDate() por lo que quedará de la siguiente manera:
Spoiler:
3. Dentro de la clase CategoriaNodo2 debemos poner la implementación hacia los oyentes de los eventos que se utilizarán. Por consecuente después importamos e implementamos el método abstracto que nos proporcionará.

Spoiler:
4. Dentro del método implementado de nombre propertyChange() se debe agregar:

Spoiler:
5. Ya para finalizar se debe realizar un cambio de parametros indicando la propiedad a modificar.

Spoiler:
por:

Spoiler:
A completando todos estos pasos debes de tener lo siguiente:
[Tienes que estar registrado y conectado para ver esa imagen]
Autor: Viruz study
Enlace: Nodos en NetBeans Platform (Parte 6)
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.