Ya esta disponible la versión 7.1 de NetBeans en varios idiomas incluyendo el idioma español.
NetBeans se ha convertido en un IDE amplia mente utilizado y con muchas características.
Ya esta disponible para descargas NetBeans 7.1
Aquí encontraras información sobre esta versión
http://netbeans.org/community/releases/71/
Puedes ver un video introductorio
http://netbeans.org/kb/docs/ide/overview-screencast.html
Este año, empieza con muchas expectativas para los usuarios de NetBeans, con mayor razón, pronto estará disponible la versión 7.1 con muchas mejoras y grandes ventajas para los desarrolladores, también este año veremos el crecimiento de usuarios de Java y otros lenguajes que corren sobre JVM.
A todos mis amigos les deseo lo mejor para este 2012.
Esta disponible la version 2.0.2 del plugin DataClassG , entre las caracteristicas de esta versión esta el soporte para tipos de datos Set, Enum, DateTime.
Este ha sido probado con la base de datos MYSQL.
Enlace para descargar el plugin
http://plugins.netbeans.org/plugin/39424/?show=true
Sitio Web
https://sites.google.com/site/dataclassg/
Ejemplo:
if (mybeansContoller1.Editar(mybeans1)) {
System.out.println(" editado");
} else {
System.out.println("No editado " + mybeansContoller1.getMensaje());
}
Consideraciones sobre List<myclase> l = new ArrayList<>();
Definimos dos clases
public class User
String username;
String usuario;
String idgrupousuario;
Usergroup grupousuarios; //clase Usergroup
public User() {
}
public User(String username, String usuario, String idgrupousuario) {
this.username = username;
this.usuario = usuario;
this.idgrupousuario = idgrupousuario;
}
//set y get
}
public class Usergroup {
String idgrupo;
String grupo;
public Usergroup() {
}
public Usergroup(String idgrupo, String grupo) {
this.idgrupo = idgrupo;
this.grupo = grupo;
}
//SET Y GET
}
Situación 1:
Declaramos el objeto gruposusuarios fuera del ciclo.
try {
List<user> list = new ArrayList<>();
Usergroup grupousuarios = new Usergroup();
for (int i = 0; i < 3; i++) {
User u = new User("user" + i, "name" + i, "admin" + i);
grupousuarios.setIdgrupo("admin" + i);
grupousuarios.setGrupo("administrador" + i);
u.setGrupousuarios(grupousuarios);
list.add(u);
}
for (User u1 : list) {
System.out.println(" " + u1.getUsername() + " " + u1.getUsuario() + " " + u1.getGrupousuarios().getIdgrupo() + " " + u1.getGrupousuarios().getGrupo());
}
//
} catch (Exception ex) {
System.out.println(" Error UsuariosPersistencia" + ex);
}
Si lo ejecutamos notaremos que se repetirá el ultimo objeto gruposusuarios en todos los elementos de la lista. Generando una salida incorrecta.
Podemos ver lo que ocurre con el Depurador de NetBeans
Primero agregamos el primer objeto de la clase gruposusuarios
Ahora cuando agregamos el segundo objeto, este reemplaza a todos los anteriores en la lista.
Situación 2:
Declaramos el objeto gruposusuarios dentro del ciclo, así no se repetirá el valor del ultimo objeto en toda la lista.
try {
List<user> list = new ArrayList<>();
for (int i = 0; i < 3; i++) {
User u = new User("user" + i, "name" + i, "admin" + i);
Usergroup grupousuarios = new Usergroup();
grupousuarios.setIdgrupo("admin" + i);
grupousuarios.setGrupo("administrador" + i);
u.setGrupousuarios(grupousuarios);
list.add(u);
}
for (User u1 : list) {
System.out.println(" " + u1.getUsername() + " " + u1.getUsuario() + " " + u1.getGrupousuarios().getIdgrupo() + " " + u1.getGrupousuarios().getGrupo());
}
} catch (Exception ex) {
System.out.println(" Error UsuariosPersistencia" + ex);
}
En el depurador, podemos observar que los valores de gruposusuarios se almacenan correctamente.
Ya esta disponible la versión 2.0 de DataClassG, el plugin para NetBeans que permite crear tu propio O.R.M
http://plugins.netbeans.org/plugin/39424/dataclassg
En el sitio
https://sites.google.com/site/dataclassg/
encontraras un tutorial de uso.
Esta disponible la versión 1.9.6 de DataClassG
Esta disponible la versión 1.9.5 de DataClassG
http://plugins.netbeans.org/plugin/39424/?show=true
Esta incluye 4 métodos nuevos.
Contador()
ContadorSQL()
EditarSQL()
EliminarSQL()
Puedes consultar el wiki para ver el detalle de los métodos.
http://wiki.netbeans.org/TaT_AvbravoDataClassG
Resulta que me encuentro haciendo un desarrollo en PHP y como usuario de Netbeans es el IDE que uso para este proyecto.
Pero me enfrento a un problema, al momento de hacer un debug del código (Netbeans usa Xdebug para esta tarea) resulta que no se detiene en los breakpoints que indico :irked: realmente algo raro pasa.
Pensé que era la configuración de para el uso de xdebug, pero no, todo en la configuración esta bien, entonces ¿cuál es el problema?, buscado en diferentes sitios la solución la encontré, bueno no del todo, pero al menos ya puede hacer ese seguimiento del código.
Por lo que veo netbeans se queda esperando la conexión con xdebug, pero la url de la página a debuggear no no muestra: ?XDEBUG_SESSION_START=xdebug por lo que siempre se queda esperando:
Pero si de manera manual completamos la dirección, es decir, debe de lucir de la siguiente manera:
localhost/modificar.php?XDEBUG_SESSION_START=xdebugEn mi caso dice =xdebug ya que cambie la configuración, normalmente dice netbeans-xdebug, con esta modificación a la url se logra hacer la conexión con xdebug y netbeans se detiene en los puntos indicados. Si alguno sabe que puede estar pasando seria interesante que lo mencionara, por ahora creo que ingresare de manera manual la url para poder hacer el debug, en lo que encuentro una solución mas adecuada.
Resulta que me encuentro haciendo un desarrollo en PHP y como usuario de Netbeans es el IDE que uso para este proyecto.
Pero me enfrento a un problema, al momento de hacer un debug del código (Netbeans usa Xdebug para esta tarea) resulta que no se detiene en los breakpoints que indico :irked: realmente algo raro pasa.
Pensé que era la configuración de para el uso de xdebug, pero no, todo en la configuración esta bien, entonces ¿cuál es el problema?, buscado en diferentes sitios la solución la encontré, bueno no del todo, pero al menos ya puede hacer ese seguimiento del código.
Por lo que veo netbeans se queda esperando la conexión con xdebug, pero la url de la página a debuggear no no muestra: ?XDEBUG_SESSION_START=xdebug por lo que siempre se queda esperando:
Pero si de manera manual completamos la dirección, es decir, debe de lucir de la siguiente manera:
localhost/modificar.php?XDEBUG_SESSION_START=xdebugEn mi caso dice =xdebug ya que cambie la configuración, normalmente dice netbeans-xdebug, con esta modificación a la url se logra hacer la conexión con xdebug y netbeans se detiene en los puntos indicados. Si alguno sabe que puede estar pasando seria interesante que lo mencionara, por ahora creo que ingresare de manera manual la url para poder hacer el debug, en lo que encuentro una solución mas adecuada.
Ampliando el tutorial de DataClassG con iReport.
MANEJANDO MULTIPLES CLASES
Se relacionan las clases en una clase nueva
public class MyRecibosDetalles {
String nombre;
String direccion;
String municipio;
Recibos recibos;
Recibosdetalles recibosdetalles;
Regimen regimen;
public MyRecibosDetalles() {
}
public MyRecibosDetalles(String nombre, String direccion, String municipio, Recibos recibos, Recibosdetalles recibosdetalles,Regimen regimen) {
this.nombre = nombre;
this.direccion = direccion;
this.municipio = municipio;
this.recibos = recibos;
this.recibosdetalles = recibosdetalles;
this.regimen = regimen;
}
En el diseñador de reportes agregar el beans que los relaciona
En los campos se mostraran las clases
Arrastramos por ejemplo recibosdetalles
Seleccionamos la propiedad Textfield Expression
Ahora damos clic en ...seleccionamos la clase recibosdellates y el campo getIdregimen()
NetBeans 7.1 RC1 ya esta disponible para la descarga , puedes bajarla desde este enlace http://dlc.sun.com.edgesuite.net/netbeans/7.1/rc1/Entre las caracteristicas:JavaFXSupport for JavaFX 2.0Support of all three deployment models: Desktop, Applet, JNLPPreloaders to improve application loading experienceCustomized UI controls using CSS3NetBeans PlatformNew Window System APIsEntre otros.
Luego de varias preguntas relacionadas al tema (ubicar una imagen de fondo a un JDialog) me puse a trabajar en el tema y les presento una solución, la misma que sigue lo explicado en el post JFrame con Imagen de Fondo.
El proyecto está estructurado como muestra la imagen a continuación:
La descripción de la misma es la siguiente:
- El JFrame – FrmPrincipal.java tiene un botón cuya función es mostrar el JDialog.
- El JDialog – JDiFondo.java, muestra un JPanel
- Un JPanel – PnlFondoJDialog.java, que muestra la imagen y un botón.
Veamos el código más importante de cada uno de los elementos, empecemos por el JFrame – FrmPrincipal.java
public class FrmPrincipal extends javax.swing.JFrame {
/** Creates new form FrmPrincipal */
public FrmPrincipal() {
initComponents();
}
private void btnMostrarActionPerformed(java.awt.event.ActionEvent evt) {
int ancho = 300;
int alto = 300;
JDiFondo jdiFondo = new JDiFondo(this, true);
jdiFondo.setSize(ancho, alto);
jdiFondo.setPreferredSize(new Dimension(ancho, alto));
jdiFondo.configurar();
jdiFondo.setVisible(true);
}
...
}
Usamos setSize y jdiFondo.setPreferredSize, el primero nos permite que la imagen y la ventana del JDialog tengan el mismo tamaño, también se invoca la método configurar del JDialog que lo explicaremos más adelante.
Ahora veremos el JDialog - JDiFondo.java
public class JDiFondo extends javax.swing.JDialog {
/** Creates new form JDiFondo */
public JDiFondo(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}
public void configurar(){
PnlFondoJDialog pnlFondo = new PnlFondoJDialog();
pnlFondo.setSize(this.getSize());
this.add(pnlFondo, BorderLayout.CENTER);
this.pack();
}
...
}
Lo que debemos destacar de está clase es el método configurar, que no existía cuando trabajamos en el post anterior (ubicar la imagen en un JFrame – JFrame con Imagen de Fondo) es necesario éste método por que si ubicamos sus líneas de código en el constructor el panel toma la medida por defecto del JDialog ya que hasta ese momento no le asignamos un tamaño al JDialog (Ver el método btnMostrarActionPerformed del JFrame).
Finalmente el JPanel – PnlFondoJDialog.java este no ha cambiado y sigue el mismo principio que se mencionó en el post: JFrame con Imagen de Fondo.
public class PnlFondoJDialog extends javax.swing.JPanel {
/** Creates new form PnlFondo */
public PnlFondoJDialog() {
initComponents();
}
@Override
public void paintComponent(Graphics g){
Dimension tamanio = getSize();
ImageIcon imagenFondo = new ImageIcon(getClass().
getResource("/los/imagen/DSC00857.jpg"));
g.drawImage(imagenFondo.getImage(), 0, 0,
tamanio.width, tamanio.height, null);
setOpaque(false);
super.paintComponent(g);
}
...
}
El resultado final lo pueden ver en la siguiente imagen:
El código completo lo pueden descargar aquí.
Espero que les ayude
Un post luego de muchooooooo tiempo.
Hace algún tiempo ya conocí y trabajé con Gephi, una herramienta open source para realizar análisis de redes sociales o SNA por sus siglas en inglés. Gephi está construido sobre la plataforma de NetBeans, lo que le permite que sea extensible agregando nuevos plugins, de hecho existen ya varios plugins y siguen creciendo.
Es así como iniciamos la construcción de un plugin que nos permita visualizar el resultado de los análisis que se realizan en Gephi. El plugin lo denominamos Loxa Web Site Export y es un plugin que exporta el análisis realizado a un sitio Web, que es fácil de personalizar (a través de hojas de estilos) y enriquecer con descripciones de cada uno de los gráficos (editando un archivo JSON). Una imagen que muestra un sitio publicado con nuestro plugin:

Un ejemplo del uso de nuestro plugin
Usámos Gephi para realizar un meta-análisis del proyecto TAEE aplicando análisis de redes sociales, y lo resultados los publicamos usando el plugin y lo publicamos aquí.
Obviamente el plugin fue desarrollado en JAVA usando las siguientes tecnologías:
- JSOUP: para armar la página principal del sitio Web
- GSON: para transformar un objeto a un archivo json
- Seadragon: que nos permite crear imágenes con nivel de zoom-in bastante alto. Si bien no es tecnología Java, existe una implementación Java.
- PDF-Renderer: que permite crear un documento pdf en memoria y luego usarlo para crear la imágenes que se usaran Seadragon
NetBeans Governance Board Electionhttp://netbeans.org/community/articles/nbelections.htmlAquí puedes ver el perfil de los candidatosNetBeans Governance Board Election Candidates' Profiles
Se ha actualizado el plugin DataClassG, a la version 1.9.3.8, en la que se incluye el metodo para actualizar claves primariashttp://plugins.netbeans.org/plugin/39424/?show=trueel tutorial de uso del metodo se ha agregado al wikihttp://wiki.netbeans.org/TaT_AvbravoDataClassG#EditarClavePrimaria.28.29
DataClassG, ha sido actualizado a la versión 1.9.3.7 esta versión corrige algunos bugs, sobre todo en el manejo de tablas relacionadas.Disponible enhttp://plugins.netbeans.org/plugin/39424/?show=true
NerBeans 7.1 Beta
agrega la pestaña de Historial de versiones en la edición de formularios
Esta guia de usuario muestra como utilizar el soporte de Git en NetBeans 7.1
Puedes ver la guía en el siguiente enlaceGit User Guide
Ya esta disponible la versión 7.1 Beta de NetBeans, con soporte para JavaFX 2.0,la puedes descargar desde el siguiente enlace http://dlc.sun.com.edgesuite.net/netbeans/7.1/beta/
Pronto estará disponible la versión 2.0 de DataClassG, la que incluye mejoras en el código, ajustes en el rendimiento, joins.Esta version esta enfocada en el manejo de las relaciones entre (tablas), objetos.
Java.net se mantiene fuera de servicio aun después de varios días.
Ya esta disponible NetBeans 7.0.1 en español
http://netbeans.org/downloads/
Segun la Wikipedia un clip es:
Un objeto con el cual se pueden agrupar folios, cartulinas y todo tipo de documentos.
Esta semana fue la ceremonia de entrega de diplomas del Diplomado en Educación 2.0 y nuestra instructura nos conto esta historia sobre el clip:
Durante la Segunda Guerra Mundial, el clip llegó a ser utilizado por los noruegos como símbolo de unidad nacional frente a la ocupación alemana: los nazis prohibieron el uso de botones con las iniciales del rey nórdico, a lo que la población respondió colocando clips en su lugar en señal de protesta [1].
Los de planeta linux, planeta openSuSE o planeta netbeans se preguntaran que relación tiene este evento con las respectivas temáticas, posiblemente muy poca, pero a continuación explico:
En este diplomado la mayoria de los temas hablaban de compartir, de hacer uso de las herramientas libres que hay en internet, de difundir conocimiento y en algunos casos de prefirir plataformas abiertas para que todo lo que se haga este al alcance de todos y de aprender a usar herramientas 2.0 para la generación de contenidos educativos.
Algunas veces externe mi opinión de que gran parte de esos conceptos, al menos, en el mundo de la informática se tienen desde hace mucho, no se si pase lo mismo en otras áreas, es decir, que se tengan movimientos como GNU en disciplinas como el derecho, contaduria, etc.o desde mi muy particular punto de vista lo que podría permear en otras áreas es CC
Si bien es cierto hay iniciativas como la del MIT con OpenCourseWare que nos permite tener acceso a los materiales que usan para impartir sus cursos o como EDUSOL que como su eslogan dice:
Construcción colaborativa de conocimiento: Educación, Cultura y Software Libres
Nos hace ver que el software libre, o al menos su filosofia, puede ser aplicado en diferentes áreas, va mas allá de esas aplicaciones pulares, no solo sirve para salucionar problemas en las PyMES o para facilitar su adopción de tecnología, creo que el SL como ideología ya no solo es exclusivo de informáticos, y parafraseando a lo que dijo Gunnar Wolf en el Foro Software Libre en México, Reflexiones y Oportunidades
Si al SL le quitas su parte técnica, obtienes conocimiento, cultura
O como diria Cristobal Cobo en una de sus entrevistas:
Esta idea vieja de que el open source es para los hippies ... esta muy, muy pasada de moda
Logre notar que para muchas personas esta filosofía es por completo desconocida, supongo piensan que es solo para los que estudiamos o nos dedicamos a la informática, cosa que no es así, si algo he aprendido es que el conocimiento se debe difundir el conocimiento es libre que nada se gana quedandote las cosas, y eso me recuerda a un "maestro" que dijo:
Yo no le voy a enseñar a alguien que pueda quitarme mi trabajo
En fin, supongo me he dado cuenta que lo importante de una herramienta o recurso web no es ésta como tal, es lo que puedes hacer tu con ella y a nivel educativo esto toma una un sentido mas significativo, son pocos los maestros a los que podríamos llamar "Docentes 2.0" ya que primero hay que tener la fortuna de que quiera aprender e iniciar un proceso de alfabetización digital.
Si escribo esto es por que solo tome este diplomado ya que tenia mucho tiempo libre en el trabajo y queria ocuparme en algo y algo que inicio como un simple pasatiempo ha hecho que cambiara mi tema de tesis y la enfocara a la educación 2.0, y a considerar tomar una maestría en tecnologia educativa y a buscar opciones de desarrollo profesional muy ligadas a la educación.
Hoy escuche en OpenEnchilada que si no te sientes bien con lo que haces es hora de cambiar, y fue lo que hicie, hace mes y medio que no tengo un trabajo formal, busco ser profesional independiente y ello me ha llevado a tener la posibilidad de colaborar con un centro de autoaprendizaje basado en educación 2.0 y en la enseñanza de temas referentes a la tecnología (lenguajes de programación, SL, Ing de Software) aun no autorizan el proyecto pero creo que es mucho mejor hacer lo que te gusta a estar en un trabajo en el que no te sientes del todo bien.
La anecdota del clip es para que las personas que tomaron el diplomado se comprometan y se distingan de otros ayudando a la educación en México usando los recursos tecnológicos o no que les sean posibles ya que el ser un docente 2.0 es cuestión de actitud
[1] ¿Quién invento el clip?
Segun la Wikipedia un clip es:
Un objeto con el cual se pueden agrupar folios, cartulinas y todo tipo de documentos.
Esta semana fue la ceremonia de entrega de diplomas del Diplomado en Educación 2.0 y nuestra instructura nos conto esta historia sobre el clip:
Durante la Segunda Guerra Mundial, el clip llegó a ser utilizado por los noruegos como símbolo de unidad nacional frente a la ocupación alemana: los nazis prohibieron el uso de botones con las iniciales del rey nórdico, a lo que la población respondió colocando clips en su lugar en señal de protesta [1].
Los de planeta linux, planeta openSuSE o planeta netbeans se preguntaran que relación tiene este evento con las respectivas temáticas, posiblemente muy poca, pero a continuación explico:
En este diplomado la mayoria de los temas hablaban de compartir, de hacer uso de las herramientas libres que hay en internet, de difundir conocimiento y en algunos casos de prefirir plataformas abiertas para que todo lo que se haga este al alcance de todos y de aprender a usar herramientas 2.0 para la generación de contenidos educativos.
Algunas veces externe mi opinión de que gran parte de esos conceptos, al menos, en el mundo de la informática se tienen desde hace mucho, no se si pase lo mismo en otras áreas, es decir, que se tengan movimientos como GNU en disciplinas como el derecho, contaduria, etc.o desde mi muy particular punto de vista lo que podría permear en otras áreas es CC
Si bien es cierto hay iniciativas como la del MIT con OpenCourseWare que nos permite tener acceso a los materiales que usan para impartir sus cursos o como EDUSOL que como su eslogan dice:
Construcción colaborativa de conocimiento: Educación, Cultura y Software Libres
Nos hace ver que el software libre, o al menos su filosofia, puede ser aplicado en diferentes áreas, va mas allá de esas aplicaciones pulares, no solo sirve para salucionar problemas en las PyMES o para facilitar su adopción de tecnología, creo que el SL como ideología ya no solo es exclusivo de informáticos, y parafraseando a lo que dijo Gunnar Wolf en el Foro Software Libre en México, Reflexiones y Oportunidades
Si al SL le quitas su parte técnica, obtienes conocimiento, cultura
O como diria Cristobal Cobo en una de sus entrevistas:
Esta idea vieja de que el open source es para los hippies ... esta muy, muy pasada de moda
Logre notar que para muchas personas esta filosofía es por completo desconocida, supongo piensan que es solo para los que estudiamos o nos dedicamos a la informática, cosa que no es así, si algo he aprendido es que el conocimiento se debe difundir el conocimiento es libre que nada se gana quedandote las cosas, y eso me recuerda a un "maestro" que dijo:
Yo no le voy a enseñar a alguien que pueda quitarme mi trabajo
En fin, supongo me he dado cuenta que lo importante de una herramienta o recurso web no es ésta como tal, es lo que puedes hacer tu con ella y a nivel educativo esto toma una un sentido mas significativo, son pocos los maestros a los que podríamos llamar "Docentes 2.0" ya que primero hay que tener la fortuna de que quiera aprender e iniciar un proceso de alfabetización digital.
Si escribo esto es por que solo tome este diplomado ya que tenia mucho tiempo libre en el trabajo y queria ocuparme en algo y algo que inicio como un simple pasatiempo ha hecho que cambiara mi tema de tesis y la enfocara a la educación 2.0, y a considerar tomar una maestría en tecnologia educativa y a buscar opciones de desarrollo profesional muy ligadas a la educación.
Hoy escuche en OpenEnchilada que si no te sientes bien con lo que haces es hora de cambiar, y fue lo que hicie, hace mes y medio que no tengo un trabajo formal, busco ser profesional independiente y ello me ha llevado a tener la posibilidad de colaborar con un centro de autoaprendizaje basado en educación 2.0 y en la enseñanza de temas referentes a la tecnología (lenguajes de programación, SL, Ing de Software) aun no autorizan el proyecto pero creo que es mucho mejor hacer lo que te gusta a estar en un trabajo en el que no te sientes del todo bien.
La anecdota del clip es para que las personas que tomaron el diplomado se comprometan y se distingan de otros ayudando a la educación en México usando los recursos tecnológicos o no que les sean posibles ya que el ser un docente 2.0 es cuestión de actitud
[1] ¿Quién invento el clip?
Cuando deseamos crear reportes con iReport de nuestro API de persistencia creado con DataClassG.
Seguimos estos pasos básicos:
Ir al sitio de Jasper
http://jasperforge.org/project/ireport
Descargar el plugin de NetBeans y la distribución para linux(esta al usaremos para obtener las librerias que agregaremos a nuestro proyecto).
Instalamos el plugin para NetBeans
En el Menú de NetBeans seleccionar Herramientas->Tools->Option->iReport ->Classpath.
Agregamos el JAR
Agregamos las librerias al proyecto. Esta las puedes encontrar en el directorio.
iReport-4.1.1->ireport->modules->ext
Listado de las librerias a incluir
Diseñar el Reporte
Creamos un paquete nuevo para almacenar los reportes
Nuevo->Report->Empty report
Colocamos el nombre usuarios. En el diseño
seleccionamos en la pestaña Reportes ->Reportes->Edit Query
Seleccionar JavaBean DataSource-> en Class name colocar el nombre del beans correspondiente al proyecto de persistencia.
En este ejemplo org.testpersistence.beans.Usuarios y presionar el
botón Read attributes y seleccionar los atributos cedula y nombre y presionar el botón Add selected field(s), de manera que aparezcan en la parte inferior.
Ahora se muestran los campos
Arrastramos a la banda de Detalles
Ahora compilamos el reporte 
Invocaremos el Reporte
HashMap map = new HashMap();
Usuarios usuarios = new Usuarios();
UsuariosController uc = new UsuariosController();
if (uc.Listar()) {
t.Imprimir(uc.getUsuarioslist(), map);
} else {
System.out.println(" no se puede listar");
}
Creamos el metodo Imprimir()
private void Imprimir(List aux, HashMap map) throws JRException {
try {
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(aux);
//Indicamos la ruta del reporte
InputStream reporte = (InputStream) getClass().getResourceAsStream("reportes/usuarios.jasper");
if (reporte == null) {
Mensajeria.Mensaje("No se pudo cargar el reporte");
} else {
JasperPrint print = JasperFillManager.fillReport(reporte, map, ds);
JasperViewer.viewReport(print, false);
}
} catch (Exception ex) {
Mensajeria.MensajeError(ex, "Imprimir()");
}
}
Reporte
Eliminacion de la clase Encriptador.java y ajustes en la generacion.
http://plugins.netbeans.org/plugin/39424/?show=true
Esta nueva versión genera un archivo con la información de proceso indicando los mensajes de error encontrados en las estructuras de tablas, tales como:
. Tablas sin claves primarias
. Tablas con claves foráneas cíclicas.
http://plugins.netbeans.org/plugin/39424/?show=true
Esta version corrige un error en el metodo Editar en el api de persistencia y crea un método nuevo EncontrarRegistro() que devuelve un valor booleano si existe el registro.
Descargar el plugin
http://plugins.netbeans.org/plugin/39424/?show=true
wiki
http://wiki.netbeans.org/TaT_AvbravoDataClassG
Incorpore algunas actualizaciones al wiki sobre DataClassG, en las que se incluye las busquedas por fechas
http://wiki.netbeans.org/TaT_AvbravoDataClassG
Esta disponible NetBeans 7.0.1 con soporte para Java 7.0
varias mejoras, soporte para GlassFish 3.1
Más información en http://netbeans.org/community/releases/70/
Agradezco a mi amigo José María Martínez García, por su screenshoot del uso de DataClassG en 
En el wiki
http://wiki.netbeans.org/TaT_AvbravoDataClassG
Puedes encontrar un tutorial del uso de DataClassG
Obtener los registros
Usuarios u = new Usuarios();
UsuariosController uc = new UsuariosController();
if(uc.Listar()){
for(int i =0;i< uc.getUsuarioslist().size();i++){
u = uc.getUsuarioslist().get(i);
System.out.println("cedula "+ u.getCedula() + "nombre " +u.getNombre());
}
}else{
Mensajeria.Mensaje("No existen registros");
}
Ejecutar un Query
* Query
*/
String sql = "nombre= 'aristides villarreal bravo' order by cedula desc";
if (uc.Query(sql)) {
for (int i = 0; i < uc.getUsuarioslist().size(); i++) {
u = uc.getUsuarioslist().get(i);
System.out.println("cedula " + u.getCedula() + "nombre " + u.getNombre());
}
} else {
Mensajeria.Mensaje("No existen registros con esa condicion");
}
Otra forma
String sql = "nombre= 'aristides villarreal bravo' order by cedula desc";
if (uc.Query(sql)) {
for( Usuarios u: uc.getUsuarioslist()){
System.out.println("cedula " + u.getCedula() + "nombre " + u.getNombre());
}
} else {
Mensajeria.Mensaje("No existen registros con esa condicion");
}
Creamos un proyecto Java utilizando NetBeans
Ahora agregamos el Driver JDBC MYSQL
dar clic en el plugin
Seleccionamos la base de datos
Tenemos elAPI generado
Damos clic derecho en el nombre del proyecto y seleccionamos Limpiar y Construir
Ahora en la carpeta dist de nuestro proyecto tenemos el jar con la persistencia de nuestra base de datos
>
Ahora creamos un nuevo proyecto 
En las propiedades del proyecto, agregamos el driver jdbc MySQL y el API de persistencia correspondiente al proyecto anterior que creamos.(archivo .jar)
Bibliotecas necesarias
Esta es la clase principal
Agregamos el api
Luego de haber generado las clases con DataClassG. Creamos una plantilla
Seleccionamos el modelo de plantilla
Archivo de plantilla creado
Dar clic en el plugin
Generamos
Se generan una carpeta para cada tabla y los archivos xhtml
Configuramos el jdbc
Ejecutamos el proyecto. Presionar Login: user: test password: test
Cuando los logeamos , nos muestra el menú y las diversas opciones
Creamos un nuevo proyect Web con NetBeans, 
Servidor indicamos GlassFish
En el FrameWorks seleccionamos Java Server Faces y en componentes PrimeFaces
Proyecto creado
Seleccionamos Servicios ->Drivers -> MySQL
Establecemos una conexión con la base de datos test en mysql
Ahora tenemos la conexión a la base de datos
Ahora seleccionamos el proyecto y damos clic en el plugin DataClassG
Seleccionamos la conexión a la base de datos test
Mensaje de proceso terminado
Paquetes y archivos generados
Archivo de propiedades con los campos de las tablas
Se agrega automaticamente el < resource-ref >
Clases generadas
Creamos un proyecto nuevo
Dar clic en el plugin
Seleccionar la base de datos
El plugin genera los beans, controller and basic API for Persistence
En esta actualización se muestra el estado de los contactos en la barra de estado.
Se agrupan los contactos en tres grupos(Disponibles, No Disponibles, Sin Invitacion Chat(Son los usuarios que aun no se ha permito chatear).
Permite utilizar tamaños de letras mas pequeños

Geertjan Wielenga ha mejorado el código y el diseño del plugin.
Ahora no es necesario colocar en el email @gmail.com
Tiene un diseño mas organizado que permite una mejor integración con los demás componentes de NetBeans,
Descarga
http://plugins.netbeans.org/plugin/39307/?show=true
Esta versión permite definir el tipo de fuente de letra y el tamaño
Ademas los colores de los mensajes estan diferenciados.
Ademas del soporte de html.
Este muestra la imagen
Pueden descargarlo desde
http://plugins.netbeans.org/
En Categorias seleccionar Team Colaboration -> Version del IDE 7.0
Hace unos días que estaba interesado en integrar el chat de google dentro de NetBeans en un plugins, ya que estamos trabajando en unos proyectos y la mayor parte de la comunicación la realizamos atraves de google chat.
Despues de instalar el plugin
Puedes descargarlo desde
http://plugins.netbeans.org/plugin/39307/?show=true
En el menu de NetBeans. Complementos - Descargado agregar
Seleccionamos en el menu de NetBeans -Herramientas- Opciones
Se muestra el icono en la barra![]()
Al entrar se establece la conexón y nos carga la lista de contactos agrupados en Disponibles y No disponibles
Seleccionamos el contacto y presionamos el boton Add
Lo agrega el combo de usuarios conectados y nos muestra la foto del usuario activo
El boton elimina un usuario del combo![]()
Cuando es un usuario que no hemos agregado a la conversación el que nos escribe se muestra una ventana con el mensaje del usuario y se nos pregunta si deseamos agregarlo.
Si respondemos si, lo agrega automáticamente y nos muestra el mensaje
Este plugin esta en desarrollo, así que se les agradece sus comentarios.
Creamos una clase
import java.io.Serializable;
import java.util.Locale;
import javax.faces.context.FacesContext;
import javax.annotation.ManagedBean;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
/**
*
* @author avbravo
*/
@ManagedBean
@SessionScoped
@Named(value = "idiomas")
public class Idiomas implements Serializable {
private static final long serialVersionUID = 1L;
public Idiomas() {
}
private static String locale = Locale.getDefault().getDisplayLanguage();
public void setLocale(String locale) {
this.locale = locale;
}
public synchronized String getLocale() {
return locale;
}
public synchronized String changeLanguage() {
return "changed";
}
public String englishAction() {
FacesContext context = FacesContext.getCurrentInstance();
context.getViewRoot().setLocale(Locale.ENGLISH);
this.locale = "en";
return null;
}
public String spanishAction() {
FacesContext context = FacesContext.getCurrentInstance();
context.getViewRoot().setLocale(new Locale("es"));
this.locale = "es";
return null;
}
}
En la pagina xhtml, en el head
< f:view locale="#{idiomas.locale}">
y creamos commandLink
< h:commandLink action="#{idiomas.englishAction}" value="#{mensajes['idioma.english']}" />
< h:commandLink action="#{idiomas.spanishAction}" value="#{mensajes['idioma.spanish']}" />
Ya esta disponible la versión NetBeans 7.0.1 RC1 
La puedes descargar desde el siquiente enlace
http://dlc.sun.com.edgesuite.net/netbeans/7.0.1/rc1/
Un evento muy bien organizado por mis amigos de la Universidad Catolica de Cali, realmente una fiesta de software libre/abierto, en la que participaron desde diversos lugares(Cali,Ibagüe, Pereira, y Bogota).
Hubieron exposiciones y varios proyectos interesantes, muchos implementados en Java.
Los estudiantes preparando sus tiendas de campaña
Mi presentación
asistentes
Articulo en Dzone sobre el primer Campus Software Party realizado en la ciudad de Cali-Colombia y en el cual tuve el placer de asistir.
Realmente un evento muy bien organizado que reunió estudiantes y docentes de varias ciudades de Colombia, mis agradecimientos a mis amigos de Cali.
Luego de haber creado el proyecto Web y usar el generador de clases ahora usaremos el plugin generador Java Server Faces
1. Creamos una plantilla 
2. Seleccionamos la plantilla
3.El proyecto con la plantilla generado
4.El plugin generador de clases agrega el resource-ref en el archivo web.xml
5. Ahora damos clic en el plugin Generador Java Server Faces![]()
6.El plugin nos muestra las plantillas y presionamos el botón generar.
7. El plugin genera el directorio modulos donde estarán Login.xhtml, Menu.xhtml y una carpeta para cada tabla con los diversas opciones.
8.También agrega el menu primefaces a la plantilla
9. Entramos a la administración de glassfish y creamos el pool de conexiones
10. Ejecutamos el proyecto
11. Tenemos la aplicación generada
12. Presionamos el botón login y nos muestra el dialogo
13.Se habilita el menu una vez que nos hayamos logeado
14. Seleccionamos Crear
15. Ahora seleccionamos la opción Listar
Nos muestra los registros.
16. xhtml generados
17. Clase Controller para crear el registro
Jugando un poco con NetBeans platform, estoy en el desarrollo de un API de persistencia y dos plugins para integrarlos con NetBeans IDE.
El pluging ![]()
Genera los beans de las clase de la base de datos, las clases controladores y maneja la persistencia.
Pasos:
1. Creamos un proyecto Web con NetBeans. Archivo->Proyecto Nuevo->Seleccionar Java Web -> Web Application
2. Frameworks seleccionamos Java Server Faces y en componentes Primefaces
3. Se genera el proyecto
4.En Archivo->Propiedades del proyecto agregar el driver jdbc de la base de datos y el api de persistencia.
5. Ahora dar clic en el pluging ![]()
6. Seleccionamos la base de datos
Presionar el botón Siguiente
7.Ahora presionar el botón Generar
8.El plugin generara los beans, controller y las clases de persistencia para que puedas manipularlas en tu proyecto, además archivos properties, clase para encriptar y una clase de utilidades
9. se crea un beans para cada tabla con las propiedades de cada columna.
Tambien se incluyen propiedades adicionales que puedes establecer para luego utilizarlas por el generador, indicándole si sera una imagen o un url que se almacenara en ese campo.![]()
En la próxima sección mostraremos el plugin generador de Java Server Faces.
Actualizar NetBeans 7.0 plugins
Si utilizamos algunos componentes PrimeFaces entre ellos Menu y obtenemos el mensaje
Editamos el archivo web.xml y cambiamos el estado a producción
Bug Squashing Team 
El objetivo del Bug Squashing Team es ofrecer oportunidades a estudiantes universitarios de desarrollar sus habilidades y talentos y expandir sus conocimientos más allá de lo que se enseña en el aula de clases, a través de la interacción con la comunidad de software libre y código abierto local e internacional. Gracias a los colaboradores y organizadores del BST la participación es totalmente gratuita.
Equipo Organizador
Después de muchos años de la primera liberación de Java Server Faces, esta disponible el logo oficial. Este fue escogido entre varios que se presentaron como comenta Ed Burns
Pasos:
Creamos una clase Beans
Diseñamos el formulario
Arrastramos el beans al formulario
Podemos observar en la pestaña Inspector en Otros Componentes. Alli debera aparecer el
beans arrastrado al formulario
Dar clic derecho en los componentes y seleccionar Binding
Ahora usaremos el archivo properties para utilizarlo en las etiquetas
En las propiedades seleccionamos Text
Seleccionamos Paquete de recursos en el combo propiedad
Dar clic en el botón Seleccione..
Seleccionamos el archivo de propiedades
Seleccionamos la propiedad del archivo
Quedaría de la siguiente manera
Instalando NetBeans 7.0 en Ubuntu 11.04.
Pantalla de Finalización de la instalación


Puedes descargar el IDE NetBeans en varios idiomas incluyendo en Español.
Desde http://netbeans.org/downloads/index.html
Accediendo al pool de conexiones.
Creamos un objeto DataSource en el cual especificamos el jndi, y luego obtenemos la conexión del datasource.
public Connection con = null;
public boolean Conectar() {
try {
Context ctx = new InitialContext();
if (ctx == null) {
JsfUtil.addSuccessMessage("No initial context");
return false;
}
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/congreso");
if (ds == null) {
JsfUtil.addSuccessMessage("No data source");
return false;
}
con = ds.getConnection();
if (con == null) {
System.out.println("No se pudo establecer la conexion ");
return false;
}
return true;
} catch (Exception ex) {
JsfUtil.addErrorMessage(ex, "Error");
// System.exit(1);
}
return false;
}
Ahora en el instalador de NetBeans 7.0, se muestra la licencia de JUnit y se permite la posibilidad de instalarlo o no.
También si deseamos instalar NetBeans 7.0 en español podemos hacerlo desde el siguiente enlace
http://bits.netbeans.org/netbeans/7.0/community/daily/2011-04-21_19-56-33/
Ya esta disponible la versión final de NetBeans 7.0
Puedes descargarlo desde http://netbeans.org/downloads/
Información sobre NetBeans 7.0
Tutorial básico de aplicaciones Web con NetBeans parte 7
Configurar el pool de conexiones en GlassFish
Ahora configuraremos GlassFish con un pool de conexiones a una base de datos para luego integrarla al proyecto
Entramos a la administración de glassfish generalmente en el puerto 4848 desde el browser.
http://localhost:4848
Para iniciar Glassfish debemos ejecutar el comando, desde la carpeta /bin de glassfish
./asadmin start-domain
Damos clic en Conjunto de conexiones
Agremos la configuración
y presionamos el botón Siguiente y Nos muestra la configuración básica
bajamos en la pagina, y especificamos los parametros de la conexión a la base de datos
y presionamos el botón Finalizar.
Agregamos los recursos jdbc
Configuramos el jndi
Recursos terminados









