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

Paleta mediante Nodos en NetBeans Platform

Ir abajo

Paleta mediante Nodos en NetBeans Platform Empty Paleta mediante Nodos en NetBeans Platform

Mensaje  Admin (Viruz) Miér Nov 28, 2012 3:15 am

Hola que tal amigos de Viruz Blog hoy por fin veremos como poder realizar nuestra primera paleta en la plataforma de NetBeans, como se menciono al final del post anterior existen 2 formas de crear una paleta las cuales son: mediante una jerarquía de nodos o mediante la jerarquía del archivo XML.

Como aun no conocemos muy bien este archivo XML (pero se conocerá) empezaremos por el modo de los nodos.

Lo que se necesita conocer
  • Paleta en NBP
  • Dependencias en NBP

Pasos:

1. Se debe de contar con una librería la cual tiene por nombre Common Palette o en español "Paleta Común" por lo que toca agregar la dependencia, pero veras que no se encuentra junto con las demás.

Nota: Hay que recordar que al crear una aplicación de la plataforma de NetBeans no cuenta con todas las librerías solo las más básicas para evitar cargar todas.

Damos clic derecho en nuestra aplicación y al desplegarse el menú seleccionamos la opción de propiedades. En la parte de categorías seleccionamos Libraries y buscamos esta dependencia dentro del nodo "ide".
[Tienes que estar registrado y conectado para ver esa imagen]
Una vez encontradas las seleccionamos y damos clic en el botón de "Ok".

[Tienes que estar registrado y conectado para ver esa imagen]
Listo ahora ya que se encuentra en la aplicación toca agregarla al módulo como ya se ha venido realizando.[/justify]
[Tienes que estar registrado y conectado para ver esa imagen]
2. Trabajando en nuestro primero módulo vamos a crear un nuevo paquete, damos clic izquierdo sobre el paquete "org.prueba.modulo" la opción de New > Java Package. De nombre ponemos paleta a este nuevo paquete, quedando de la siguiente manera.
3. Ahora crearemos una nueva ventana dentro del paquete con una posición de editor y otorgamos un nombre en mi caso será EditorPaleta.

Dentro de esta nueva ventana declaramos las siguientes clases junto con sus importaciones:

Spoiler:
4. Debajo del constructor de la ventana agregaremos un método nuevo este será getPalette() que es donde crearemos la paleta con el método createPalette():

Spoiler:
5. Ahora crearemos una nueva clase dentro del nuevo paquete llamada PaletaAcciones y heredamos de PaletteActions y es en esta clase donde albergaremos todas las acciones las cuales no tendremos por el momento así que dejamos los métodos abstractos como se encuentran.
package org.prueba.modulo.paleta;

import javax.swing.Action;
import org.netbeans.spi.palette.PaletteActions;
import org.openide.util.Lookup;
/**
*
* @author Viruz
*/
public class PaletaAcciones extends PaletteActions {

@Override
public Action[] getImportActions() {
return null;
}

@Override
public Action[] getCustomPaletteActions() {
return null;
}

@Override
public Action[] getCustomCategoryActions(Lookup lookup) {
return null;
}

@Override
public Action[] getCustomItemActions(Lookup lookup) {
return null;
}

@Override
public Action getPreferredAction(Lookup lookup) {
return null;
}
}

6. Ahora toca habilitar la opción de poder arrastrar y soltar los items de la paleta, para ellos vamos a crear otra clase llamada ArrastrarySoltar la cual contendrá lo siguiente:

import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import org.netbeans.spi.palette.DragAndDropHandler;
import org.openide.util.Lookup;
import org.openide.util.datatransfer.ExTransferable;
import org.prueba.modulo.CategoriaNodo2;

/**
*
* @author Viruz
*/
public class ArrastrarySoltar {
public static final DataFlavor dataFlavor
= new DataFlavor( Object.class, "MyDND" );

class MyDragAndDropHandler extends DragAndDropHandler {
@Override
public void customize(ExTransferable exTransferable, Lookup lookup) {
final CategoriaNodo2 item = (CategoriaNodo2)lookup.lookup( CategoriaNodo2.class );
if( null != item ) {
exTransferable.put( new ExTransferable.Single( dataFlavor ) {
@Override
protected Object getData() throws IOException, UnsupportedFlavorException {
return null;
}
});
}
}
}
}

7. Ahora crearemos en la ventana un objeto de la clase ArrastrarySoltar.

Spoiler:
Seguido cambiamos en el método getPalette() la siguiente línea:

Spoiler:
por:

Spoiler:
8. Por último asociamos la paleta con nuestra ventana con el método associateLookup(), la siguiente línea la ponemos en el constructor de la ventana:

Spoiler:
Listo tendremos el siguiente resultado si has seguido los pasos a la perfección:
[Tienes que estar registrado y conectado para ver esa imagen]
Autor: Viruz study
Enlace: Paleta mediante nodos (Parte 1)
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.