lunes

Envolviendo un pequeño obsequio


En este blog crearé un plugin para Netbeans 6.1 el cual ayudará a buscar el jar a partir del nombre de una clase. A mi parecer siempre ha hecho falta un plugin que haga esto, ¿cuántas veces no te has encontrado con un ClassDefNotFoundException o un NoClassDefFoundError por que no se encuentra presente un jar dentro del proyecto ?

El objetivo de este blog es crear un campo de texto en el toolbar del ide donde podrás anotar el nombre de tu clase y al presionar enter abrirá un browser con los posibles jar que la contienen.




Pasos

1. File/New Project/
  • [Categories]: Netbeans Modules,
  • [Projects]: Module
  • Click en next


2. Aparecerá una nueva ventana para indicar la ruta y nombre del proyecto.
  • Project name: JarFinderToolbar
  • Crea el proyecto como un standalone module ya que no será parte de una suite de módulos,
  • Click en Next.



3. Aparecerá la siguiente ventana en la cual deberás indicar el paquete de tu proyecto, así como el nombre que mostrará y la localización de los archivos de recursos...
  • Code Name Base: org.jarfindertoolbar
  • Module display name: JarFinder Toolbar
  • Localizing Bundle: org/jarfindertoolbar/Bundle.properties



4. Click en Finish
5. Ahora, crearemos el JPanel que contendrá el text field para la busqueda.
  • Da clic derecho sobre el proyecto
  • New
  • Other...


6. Elije la categoría Swing GUI Forms y en File Types: JPanel Form... click en Next


7. En el campo class name escribe JarFinderPanel y en package elige el que aparece en la lista, click en Finish.


8. Diseña tu JPanel similar al siguiente ...


9. Crea el evento key typed para el text field del diseño
  • Click derecho al textField/Events/Key/Key Typed.


10. Define el método keytyped del textfield como el siguiente:

private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
int i = evt.getKeyChar();
if (i==10){//The ENTER KEY
// we display the jarfinder url.
try{
URLDisplayer.getDefault().showURL
(new URL("http://www.jarfinder.com/?class="+jTextField1.getText()+"&submit=search"));
} catch (Exception e){
return;
}
}
}

11. Has un reformat code (Alt+Shift+F)
12. Como netbeans trabaja por medio de módulos, deberás agregar una dependencia para la clase URLDisplayer.

13. Da click derecho a tu proyecto/Properties/Del lado izquierdo elige la categoría Libraries



14. Agrega la dependencia para la clase URLDisplayer


15. Has un fix all imports (ctrl + shift + i) y da clic en ok


16. Las librerías de tu proyecto deberán quedar con las de esta ventana.



17. Lo único que resta es agregar un acción para nuestro JPanel, para ello da click derecho a tu proyecto/New/Action...
  • Indica que siempre este disponible (Always enabled)/Click en Next
  • Aparecerá una pantalla donde deberás indicar en category: Edit
  • Desactivar el check Global Menu item
  • En la sección de Global Toolbar Button elegir Edit en toolbar y Redo-Here en position
  • Click en Next


18. En la siguiente ventana deberás indicar los datos para acción.
  • Class Name: JarFinderAction
  • Display Name: JarFinder Action
  • Icon: Debes elegir uno aunque no se vaya a mostrar
  • Click en Finish


19. Declara la siguiente variable dentro del archivo JarFinderAction.java
JarFinderPanel jarFinderPanel = new JarFinderPanel();

20. Sobreescribe el método getToolbarPresenter() y retorna la variable jarFinderPanel


21. Solo basta probar tu nuevo obsequio...
Clic derecho al proyecto
Install/Reload in Development IDE: Lo ejecuta sobre el ide en el que estes trabajando actualmente.



22. Escribimos una clase sobre nuestro plugin, por ejemplo: 'com.sun.tools.javac.code.Flags' ... damos enter

23. Precioso resultado, ahora sabemos en que jar podemos encontrar la clase


24. Lo único que hace falta es distribuir el módulo como plugin para que todos puedan usarlo.
  • Click derecho al proyecto
  • Create NBM
  • Ve a la pestaña Files
  • Carpeta build
  • Veras el archivo org-jarfindertoolbar.nbm
25. El plugin lo puedes descargar de la siguiente url




'Ahora tienes el obsequio, de ti depende si lo abres'

2 comentarios:

benek dijo...

Bastante bueno te quedó brother :-)

Agregado a mi NB

Jali_vegan dijo...

Oras oras!! quedo rifadon!
Sigue asi, esta chingon tu bloc virtual jajaja.