Saturday, March 29, 2014

Crear componentes Java Server Faces con NetBeans

Crear componentes Java Server Faces

En este ejemplo tenemos el siguiente dialogo.


podemos reemplazarlo por un un componente personalizado


Pasos para la creación del componente
 Crear la carpeta javscaz dentro de resources
Crear la pagina eliminar.xhtml


En la sección  <composite:interface>
Definimos el nombre del atributo con <composite:attribute name>
para los métodos usamos  method-signature y especificamos el tipo de valor de retorno.


En la sección <composite:implementation>, realizamos la implementacón del codigo.
Para usar el valor  nos basamos en la sintaxis cc.attrs.nombredelatributo 

  <p:commandButton id="removeButton" value="#{app['boton.yes']}"
                                 update="#{cc.attrs.buttonYesUpdate}"
                                 oncomplete="#{cc.attrs.buttonYesOncomplete}"
                                 actionListener="#{cc.attrs.buttonYesAction}" />


Secciones:
1. namespace
2. composite interface
3. composite implementation
4. uso de componentes




En la pagina que deseamos usarlo nivel1.xhtml
en el namespace incluir (nombre de la carpeta en resources)
 xmlns:javscaz="http://java.sun.com/jsf/composite/javscaz"

Agregar el componente formato: namespace:nombredecomposite, y colocamos los valores a los atributos.
  <javscaz:eliminar
                            buttonNoOnclick="PF('confirmationwidgetVar').hide()"
                            
                            buttonYesAction="#{nivel1Controller.delete()}"
                            buttonYesOncomplete="PF('confirmationwidgetVar').hide();"
                            buttonYesUpdate=":form:panel,:form:growl"
                            />







Wednesday, March 26, 2014

lambda operación de suma usando NetBeans 8

lambda operación de  suma   usando NetBeans 8

Tradicional mente podemos realizar la suma de las personas con edad >= 30
Integer suma=0;
    for(Persona p:list){
                  if(p.getEdad() >=30 ){
                      suma += p.getEdad();
                  }
               
              }

si utilizamos lambda

  suma = list.stream().filter((p) -> (p.getEdad() >=30 )).map((p) -> p.getEdad()).reduce(suma, Integer::sum);

NetBeans 10,15 años

Algunos recuerdos de los aniversarios de NetBeans
NetBeans 10 años




NetBeans 15 años






Tuesday, March 25, 2014

Lambda JDK8 con NetBeans para Novatos

Ejemplo sencillo de Lambda con NetBeans

Crear un proyecto nuevo
File--> New Project-->Categories: Maven Projects: Java Application

Indicamos el nombre del proyecto

El IDE genera el esqueleto del proyecto



En propiedades del proyecto
Sources--> Source/Binary Format:



Crearemos una clase llamada Persona con los atributos (id,nombre,edad)
Clic derecho el paquete com.avbravo.testlambda --> New--> Java Class




Colocar el nombre: Persona

El IDE genera la nueva clase
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.avbravo.testlambda;

/**
 *
 * @author avbravo
 */
public class Persona {
    
}

Clic derecho en el código -->Seleccionar Insert Code...


Seleccionar Add Property...

Agregamos la propiedad id y tipo String. Se generan los métodos set/get
repetimos el proceso para el atributo String nombre, Integer edad;
Agregamos los métodos constructores
 public Persona() {
    }

    public Persona(String id, String nombre, Integer edad) {
        this.id = id;
        this.nombre = nombre;
        this.edad = edad;
    }

Agregar el método toString(). Clic derecho Insert Code---> toString()


@Override
    public String toString() {
        return "Persona{" + "id=" + id + ", nombre=" + nombre + ", edad=" + edad + '}';
    }

Código completo Persona.java:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.avbravo.testlambda;

/**
 *
 * @author avbravo
 */
public class Persona {
    
    private String id;

    private String nombre;

    private Integer edad;

    public Persona() {
    }

    public Persona(String id, String nombre, Integer edad) {
        this.id = id;
        this.nombre = nombre;
        this.edad = edad;
    }

   
    

    /**
     * Get the value of edad
     *
     * @return the value of edad
     */
    public Integer getEdad() {
        return edad;
    }

    /**
     * Set the value of edad
     *
     * @param edad new value of edad
     */
    public void setEdad(Integer edad) {
        this.edad = edad;
    }

    /**
     * Get the value of nombre
     *
     * @return the value of nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * Set the value of nombre
     *
     * @param nombre new value of nombre
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * Get the value of id
     *
     * @return the value of id
     */
    public String getId() {
        return id;
    }

    /**
     * Set the value of id
     *
     * @param id new value of id
     */
    public void setId(String id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "Persona{" + "id=" + id + ", nombre=" + nombre + ", edad=" + edad + '}';
    }


}

Crear una Java Main Class...





Agregamos un ArrayList<Persona> , escribimos un segmento de código sin usar Lambda, donde usamos un for y una condición lógica para filtrar 
  for(Persona p:list){
                  if(p.getEdad() >=30 ){
                       System.out.println(" --> "+p.toString());
                  }
                 
              }
clic en el asistente y seleccionar Use functional Operation

el ide genera el código lambda
 list.stream().filter((p) -> (p.getEdad() >=30 )).forEach((p) -> {
                System.out.println(" --> "+p.toString());
            });

Se usa un stream() de la lista ,se aplica el filtro 


Código Completo

  package com.avbravo.testlambda;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author avbravo
 */
public class Prueba {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       try {
              List<Persona> list = new ArrayList<>();
              list.add(new Persona("1","anna",25));
              list.add(new Persona("2","jhoan",30));
              list.add(new Persona("3","maria",40));
              System.out.println(" sin utilizar lambda");
              for(Persona p:list){
                  if(p.getEdad() >=30 ){
                       System.out.println(" --> "+p.toString());
                  }
                 
              }
              System.out.println("lambda");
              list.stream().filter((p) -> (p.getEdad() >=30 )).forEach((p) -> {
                System.out.println(" --> "+p.toString());
            });
        } catch (Exception e) {
            System.out.println("Error "+e.getLocalizedMessage());
        }
      
    }

Ejecutamos el proyecto

    
}

Thursday, March 20, 2014

One Click Open Sesame

Geertjan Wielenga, desarrollo el plugin  One Click Open Sesame 
que permite abrir los archivos al dar simplemente un click.

Descargarlo desde: http://plugins.netbeans.org/plugin/53723/?show=true





Instalarlo
Menu NetBeans: Tools-->Plugin


Seleccionar la pestaña Downloaded, dar clic en el botón Add Plugins.., seleccionar el archivo .nbm descargado.

dar clic en el botón Install

luego de haberlo instalado simplemente al dar un clic sobre el archivo este se abre en el Editor.



Tuesday, March 18, 2014

NetBeans IDE 8.0 Disponible

Esta disponible la versión final de NetBeans 8.0
https://netbeans.org/downloads/index.html


JAVA SE8 disponible


Disponible JDK8





Conexión Base Datos WildFly

Conexión Base Datos WildFly

Fuente:

Agregar Driver JDBC MySQL

Descargarlo desde
http://dev.mysql.com/downloads/connector/j/


En Runtime→Manage Deployments→presionar el botón Adda.png


presionar el botón Seleccionar archivo

sd.png










seleccionar el driver jdbc mysqlmysql.png



Presionar el botón Nextn.png




Presionar el botón Savesa.png



Se muestra el driver agregado,Dar clic en En/Disables.png





Confirmar la solicitud

r56.png

Se muestra el conector habilitado

ens.png

Crear un modulo

Pasos:
  1. Entrar al directorio /modules/system/layers/base/com dentro de wildFly
  2. crear el directorio mysql/main
  3. Copiar el jdbc driver a ese directorio
  4. Crear el archivo module.xml



Entrar el directorio
cd wildfly-8.0.0.Final/modules/system/layers/base/com


Crear el directorio mysql
mkdir mysql


Crear el directorio main
cd mysql
mkdir main


Copiar el driver jdbc mysql al directorio main recién creados.png


Crear el archivo module.xml
gedit module.xml


<?xml version="1.0" encoding="UTF-8"?>
       <module xmlns="urn:jboss:module:1.1" name="com.mysql">
           <resources>
               <resource-root path="mysql-connector-java-5.1.29-bin.jar"/>
           </resources>
           <dependencies>
               <module name="javax.api"/>
               <module name="javax.transaction.api"/>
           </dependencies>
       </module>


Agregar la configuración
Podemos hacerlo desde la línea de comandos o editar directamente el archivo standalone.xml
Editaremos el archivo standalone.xmlt
gedit  wildfly-8.0.0.Final/standalone/configuration/standalone.xml
Localizamos <datasources>, agregamos el driver

d.png

Agregamos el driver
<driver name="mysql" module="com.mysql">
     <xa-datasource-class>
       com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
     </xa-datasource-class>
   </driver>


s.png

En Profile→ Connector→Datasources dar clic en Add

add.png


En Name colocamos el nombre rigemdb
y en JNDI Name a diferencia de GlassFish debemos incluir el prefijo java:/
java:/jdbc/rigmendb

n.png




En la siguiente ventana como detecto el driver mysql dar clic en Nextd.png




Especificar


  • Connection URL: jdbc:mysql://localhost:3306/rigemdb
  • Username: root
  • Password: secret

d.png







Se muestra, el datasourcesa.png



presionar el botón Enable,d.png
presionar el botón Confirm , para confirmar la solicitud
Queda habilitadoa.png


Seleccione la pestaña Pool y presione el botón Edit4.png



y cambie los valores Min Pool Size a 5 y Max Pool Size a 15 y presione el botón Save

a.png













En la pestaña Connection dar clic en el botón Test Connection

t.png

Nos envía el mensaje de conexión exitosad.png