Mostrando entradas con la etiqueta netbeans. Mostrar todas las entradas
Mostrando entradas con la etiqueta netbeans. Mostrar todas las entradas

martes, 24 de abril de 2012

Asignar shotcut a SaveAction en NetBeans Platform

Asignar un atajo de teclado a un SaveAction (o más bien a un SaveCookie) es tan sencillo pero que me tardé  un poco en descubrirlo como agregar lo siguiente a nuestro archivo layer.xml :

<folder name="Shortcuts">
 <file name="D-G.shadow">
  <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-SaveAction.instance"/>                                              </file>                                                                 </folder>
donde  D-G.shadow indica el shortcut que en este caso es Ctrl+G. Para Alt y Shift se utilizan O y S respectivamente, como lo podemos ver en dzone.

lunes, 31 de octubre de 2011

Problema de dependencias "Cannot compile against a module..." en NetBeans Platform

Hola.

En la semana me enteré de un componente curioso llamado Sticky Note vía el blog de Geertjan e intenté ejecutar el ejemplo de Geertjan:
como sea, el caso es que intenté compilar su ejemplo para probarlo y la sorpresa esta vez fue algo como esto:

Cannot compile against a module: .....\org-netbeans-modules... org-netbeans-api-visual.jar because of dependency: org-netbeans-api-visual.jar > 3.x.x

y me enviaba a alguna parte del archivo build.xml [harness]. Además de que este problema se presentaba con cada dependencia en el módulo.

Pues resulta que la solución es muy sencilla, vamos nuestro proyecto o módulo (Ctrl+1) click derecho sobre él -> Properties -> Libreries -> Modules Dependencies y eliminamos todas las dependencias y las volvemos a agregar, damos aceptar, Clean and Build All y listo, ahora si a probar la Sticky Note Sidebar.

Otra vez un problema que se soluciona fácilmente, pero lo pongo porque me tardé un buen rato para solucionarlo.

Fuente.


Cambiar título de la ventana principal en NetBeans Platform

Hola.

Podría parecer una tontería eso de cambiar el título de una ventana, pero si estás comenzando a ver de que va esto de la Plataforma NetBeans te puede ser útil el siguiente tip:
// Only change the window title when all the UI components are fully loaded.
WindowManager.getDefault().invokeWhenUIReady(new Runnable() {
    @Override
    public void run() {
       WindowManager.getDefault().getMainWindow().setTitle(windowTitle);
    }
});

ese trozo de código lo puedes copiar por ejemplo en el constructurtor de tu TopComponent y listo.

Fuente.

domingo, 30 de octubre de 2011

Problema "Java heap space" en aplicación Netbeans Platform

Hola.

En estos días he estado desarrollando sobre Netbeans Platform porque hace magia  y el caso es que mientras ejecuto mi proyecto desde Netbeans IDE no existe problema alguno, entonces piensas: voy a generar mi instalador y a probar lo que llevo a ver si de verdad sirve esa opción que dice Package as -> Installers, así, ejecutas tu aplicación y se congela/traba/valequeso y no entiendes porque si todo iba tan bien. En este punto como buenos programadores que somos ¡ajá!, sícomo no recordamos las leyes de Murphy y mejor ejecutamos desde terminal para llevarnos la siguiente sorpresa:


java.lang.OutOfMemoryError: Java heap space

Googleando un poco nos enteramos que este error se produce cuando la JVM se queda sin memoria (de almacenamiento dinámico/ de intercambio) y además que por default el tamaño de la memoria es de 64MB (sobre Java 6). La forma de asignar tamaño a la memoria es con los siguientes parámetros de la JVM:
-Xms128m  // Como mínimo 128 MB
-Xmx512m  // Como máximo 512 MB
-Xmx1G    // Como máximo 1 GB

esto solo es parte de lo que necesitamos ya que el usuario no va a ejecutar la aplicación desde terminal pasándole algunos de los argumentos de arriba.
Buscando otro poco encontramos que la solución es modificar el script de creación Build Script que se encuentra en (Ctrl+1) Projects -> MiProyecto -> Important Files -> Build Script o en el directorio del proyecto MiProyecto -> build.xml, en este momento tenemos algo como esto:
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See harness/README in the NetBeans platform -->
<!-- for some information on what you could do (e.g. targets to override). -->
<!-- If you delete this file and reopen the project it will be recreated. -->
<project name="MiProyecto" basedir=".">
    <description>Builds the module suite MiProyecto.</description>
    <import file="nbproject/build-impl.xml"/>    
</project> 
y agregamos las siguientes líneas

<!-- Modifies the default settings for JVM (ANTES DEL CIERRE DE la etiqueta project)-->
<target name="build-launchers" depends="suite.build-launchers">
<replace file="build/launcher/etc/${app.name}.conf" token="--branding miproyecto -J-Xms24m -J-Xmx64m" value="--branding miproyecto -J-Xms128m -J-Xmx512m"/>
</target>
<!-- Modifies the default settings for JVM -->

obviamente deben cambiar miproyecto por el nombre de su proyecto (en minúculas), además pueden cambiar -J-Xms128m -J-Xmx512m según sus necesidades. Ahora sí, generamos instaladores, ejecutamos nuestra aplicación y problema resuelto.

También podría interesarnos asignar tamaño a la memoria cuando ejecutamos nuestra aplicación desde NetBeans IDE:

How to pass command line arguments to a NetBeans Platform application when run inside the IDE

 

domingo, 11 de septiembre de 2011

Trabajando lo básico de SVN con NetBeans


Hola.

En esta ocasión vamos a trabajar con SVN desde NetBeans.

Primero necesitamos tener instalado y configurado SVN en el servidor, esto es, haber creado un repositorio. Además requerimos NetBeans y SVN en el cliente. Los despistados usuarios de windows necesitan especificarle al NB donde está el svn.exe.

Creamos un repositorio (en el servidor) para alojar nuestro proyecto:
$ svnadmin create /home/USUARIO/repositorioNBPrueba/
$ mkdir proyectoNBPrueba
$ mkdir proyectoNBPrueba/branches
$ mkdir proyectoNBPrueba/tags
$ mkdir proyectoNBPrueba/trunk
# svn import /home/USUARIO/proyectoNBPrueba/ file://localhost/home/USUARIO/repositorioNBPrueba  -m "Mi primer import"
# chmod -R g+w /home/USUARIO/repositorioNBPrueba/*
ahora creamos un proyecto en NetBeans, así que vamos a New Project -> Java -> Java Application y le damos algún nombre creativo como JavaApplicationSVN.

Lo siguiente que vamos a realizar es un import del proyecto que acabamos de crear, así que sobre la ventana de proyectos del NetBeans (Ctrl+1) ubicamos Java Application, damos click derecho -> Versioning -> Import into Subversion Repository, NB nos muestra un asistente para el import donde nos pide información acerca de la ubicación del repositorio, podemos utilizar por ejemplo el protocolo svn+ssh de tal manera que en Repository URL escribimos algo como esto:
svn+ssh://DOMINIO.ALGO/home/USUARIO/repositorioNBPrueba/trunk 
¿por qué trunk, quizás debean echarle un ojo a las Buenas Prácticas de Gestión de Versiones con Subversion, lo siguiente es llenar los campos User y Password, click en Next, escribimos un pequeño comentario en Specify the Message, Next y observamos los archivos a compromoter que se ven de color verde. que indica que esos archivos han sido localmente agregados, damos click en Finish y ya tenemos nuestro proyecto en el repositorio de Subversion.

Ahora modificamos el main agregando alguna línea:
System.out.println("Modificando una clase..."); 
guardamos y notamos que la clase se pone de color azul que indica que el archivo ha sido localmente modificado, entonces hacemos click derecho sobre la clase (en la ventana de proyectos de NB) -> Subversion -> Show Changes y vemos algo como lo siguiente:


así que damos doble click sobre JavaApplicationSVN.java para ver algo como esto:



vemos del lado izquierdo el código que corresponde al repositorio (inisisto, en el servidor) y del lado derecho el código local. Además notamos que la línea que añadimos está en verde, existen tres tipos de cambios que muestra este editor:

   Azul  Indica líneas que han sido cambiadas desde la versión anterior.
   Verde  Indica líneas que han sido agregadas desde la versión anterior.
   Rojo  Indica líneas que han sido eliminadas desde la versión anterior.

y por otra parte tenemos dos operaciones importantes:

update all icon Update All Actualiza todos los archivos seleccionados desde el repositorio.
Commit all icon Commit All Permite compremeter cambios locales al repositorio.


en este caso vamos a realizar la operación de Commit para subir nuestros cambios al repositorio. Damos click en Commit all icon y escribimos un comentario sobre la operación, listo, ya hemos subido nuestros cambios al repositorio. Aunque antes de realizar operaciones de commit es recomendable realizar un update, o sea bajar primero los cambios que probablemente haya subido un integrante de nuestro equipo de desarrollo y posteriormente subir los nuestros, esto para evitar conflictos cuando dos integrantes están modificando la misma clase.

Todo lo anterior ha sido para subir nuestro proyecto nuevo al repositorio, pero suponiendo que estamos trabajando en equipo y que nosotros hacemos el primer import ¿qué pasa para el resto del equipo?, ¿cómo bajan lo que subimos?. Pues esto es realmente sencillo:

Team -> Subversion -> Checkout, en Repository URL escribimos algo como esto:
svn+ssh://DOMINIO.ALGO/home/USUARIO/repositorioNBPrueba/trunk
llenamos los campos User y Password, click en Next, en Local Folder seleccionamos la ubicación donde se guardará el proyecto, click en Finish y veremos algo como esto:

elegimos Open Project y listo, ya tenemos una copia del proyecto.

Hasta aquí lo básico de SVN con NB, pero nada mejor que Guided Tour of Subversion para profundizar en el tema.