Nodos en NetBeans Platform parte 6
Página 1 de 1.
Nodos en NetBeans Platform parte 6
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
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:
¿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)
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().
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:
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:
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:
- Sheet.Set set2 = Sheet.createPropertiesSet();
set2.setName("Categoría 2");
set2.setDisplayName("Categoría 2");
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:
- set2.put(tituloProp);
- Spoiler:
- sheet.put(set2);
[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.
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:
- private Date fecha = new Date();
public Date getDate() {
return fecha;
}
public void setDate(Date fecha) {
this.fecha = fecha;
}
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:
- set3.setValue("tabName", "Otras Opciones");
[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:
Pasos:
1. En la clase Categoria2 debemos agregar los siguientes métodos que son los que nos permitirán realizar cambios:
- Spoiler:
- public void addPropertyChangeListener (PropertyChangeListener pcl) {
listeners.add (pcl);
}
public void removePropertyChangeListener (PropertyChangeListener pcl) {
listeners.remove (pcl);
}
private void fire (String propertyName, Object old, Object nue) {
PropertyChangeListener[] pcls = (PropertyChangeListener[]) listeners.toArray(new PropertyChangeListener[0]);
for (int i = 0; i < pcls.length; i++) {
pcls.propertyChange(new PropertyChangeEvent (this, propertyName, old, nue));
}
}
Ademas de agregar la siguiente declaración en la zona de las variables y constantes:
- Spoiler:
- private List listeners = Collections.synchronizedList(new LinkedList());
- Spoiler:
- public void setDate(Date date) {
Date oldDate = date;
this.fecha = date;
fire("fecha", oldDate, this.fecha);
}
- Spoiler:
- public class CategoriaNodo2 extends AbstractNode implements PropertyChangeListener{
- Spoiler:
- if ("fecha".equals(evt.getPropertyName())) {
this.fireDisplayNameChange(null, getDisplayName());
}
- Spoiler:
- Property fechaProp = new PropertySupport.Reflection(obj, Date.class, "getDate", null);
- Spoiler:
- Property fechaProp = new PropertySupport.Reflection(obj, Date.class, "fecha");
[Tienes que estar registrado y conectado para ver esa imagen]
Autor: Viruz Enlace: Nodos en NetBeans Platform (Parte 6)
Temas similares
» Nodos en NetBeans Platform parte 2
» Nodos en NetBeans Platform parte 3
» Nodos en NetBeans Platform parte 4
» Nodos en NetBeans Platform parte 5
» Paleta mediante Nodos en NetBeans Platform parte 2
» Nodos en NetBeans Platform parte 3
» Nodos en NetBeans Platform parte 4
» Nodos en NetBeans Platform parte 5
» Paleta mediante Nodos en NetBeans Platform parte 2
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|