Tuesday, March 29, 2011

Instalando NetBeans 7.0 RC1

Ya esta disponible NetBeans 7.0 RC1
puedes descargarlo desde http://dlc.sun.com.edgesuite.net/netbeans/7.0/rc1/

Tutorial básico de aplicaciones Web con NetBeans parte 5

En este tutorial usaremos los archivos de propiedades para soportar varios idiomas.
Creamos un nuevo paquete llamado properties

Creamos un archivo de propiedades seleccionando  -Nuevo->Otro->Archivo de Propiedades


en el nombre escribimos mensajes
Creamos un archivo de propiedades

Agregamos una nueva propiedad

Quedaría de la siguiente manera

Dar clic derecho y seleccionar Agregar->Localizacion

Seleccionamos el idioma



Archivo con soporte para otros idiomas


Editamos el archivo index.xhtml
Agregamos en el <h:header>
   <f:loadBundle basename="avbravo.beans.properties.mensajes" var="mensajes" />

corregimos


Quedaría de la siguiente manera

Ahora colocamos entre comentarios la etiqueta  <h:outputLabel value="Mi aplicación JSF"/>
 <!--
      <h:outputLabel value="Mi aplicación JSF"/>
       -->

y escribimos haciendo referencia al archivo de propiedades mediante mensajes, que corresponde var="mensajes"/> y titulo es la propiedad que agregamos al archivo.

      <h:outputLabel value="#{mensajes.titulo}"/>

Quedando de la siguiente manera


Ejecutamos la aplicación


Saturday, March 26, 2011

IDENTIFICAR EL TIPO DE PROYECTO


IDENTIFICAR EL TIPO DE PROYECTO
Identifica el tipo de proyecto abierto y obtiene la ruta de la carpeta src y web
Damos clic en el nombre del proyecto y presionamos




Creamos un nuevo modulo


En las propiedades Agregamos

En el layer.xml agregamos
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN"
"http://www.netbeans.org/dtds/filesystem-1_2.dtd">
<filesystem>
<folder name="Actions">
<folder name="File">
<file name="org-avbravo-analizadorproyectos-MiAccion.instance">
<attr name="SystemFileSystem.localizingBundle"
stringvalue="org.avbravo.analizadorproyectos.Bundle"/>
<attr name="delegate" newvalue="org.avbravo.analizadorproyectos.MiAccion"/>
<attr name="displayName"
bundlevalue="org.avbravo.analizadorproyectos.Bundle#CTL_AnalizadorProyecto="/>
<attr name="iconBase"
stringvalue="org/avbravo/analizadorproyectos/resources/custom.png"/>
<attr name="instanceCreate" methodvalue="org.openide.awt.Actions.alwaysEnabled"/>
<attr name="noIconInMenu" stringvalue="false"/>
</file>
</folder>
<folder name="Window">
<file name="org-avbravo-analizadorproyectos-JSFWindowsTopComponent.instance"
url="org-avbravo-analizadorproyectos-JSFWindowsTopComponent.instance"/>
</folder>
</folder>
<folder name="Toolbars">
<folder name="File">
<file name="org-avbravo-analizadorproyectos-MiAccion.shadow">
<attr name="originalFile" stringvalue="Actions/File/org-avbravo-analizadorproyectos-
MiAccion.instance"/>
<attr name="position" intvalue="0"/>
</file>
</folder>
</folder>
</filesystem>


Clase Sesion.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.avbravo.analizadorproyectos;
import java.io.File;
/**
*
* @author avbravo
*/
public class Sesion {
static String src;
static String web;
static String tipoProyecto;
public static String getSrc() {
return src;
}
public static void setSrc(String src) {
Sesion.src = src;
}
public static String getWeb() {
return web;
}
public static void setWeb(String web) {
Sesion.web = web;
}
public static String getTipoProyecto() {
return tipoProyecto;
}
public static void setTipoProyecto(String tipoProyecto) {
Sesion.tipoProyecto = tipoProyecto;
}

}

MiAccion.java
package org.avbravo.analizadorproyectos;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javscazutilidades.Mensajeria;
import org.openide.windows.TopComponent;
/**
*
* @author avbravo
*/
public class MiAccion implements ActionListener {
public void actionPerformed(ActionEvent e) {
// TODO implement action body
MyAction myAction = new MyAction();
boolean b = myAction.isEnabled();
if (b){
/// Mensajeria.Mensaje("cierto");
}
else
{
Mensajeria.Mensaje("Debe seleccionar el proyecto");
}
}
}







MyAction.java


import javscazutilidades.Mensajeria;
import org.netbeans.api.project.Project;
import org.openide.nodes.Node;
import org.openide.util.HelpCtx;
import org.openide.util.Lookup;
import org.openide.util.actions.CookieAction;
import org.openide.windows.TopComponent;

/**
 *
 * @author avbravo
 */
public final class MyAction extends CookieAction {

    Sesion sesion = new Sesion();
    String web = "";
    String src = "";

    @Override
    public boolean isEnabled() {
        try {
            web = "";
            src = "";
            if (this.getActivatedNodes() == null || this.getActivatedNodes().length != 1) {
                return false;
            }
            Lookup lookup = this.getActivatedNodes()[0].getLookup();
            // gets the selected project
            Project currentProject = lookup.lookup(Project.class);
            if (currentProject != null) {
                String tipoProyecto = currentProject.getClass().getSimpleName();
                // Mensajeria.Mensaje("TipoProyecto:" + tipoProyecto);
                sesion.setTipoProyecto(tipoProyecto);
                src = currentProject.getProjectDirectory().getFileObject("src").toString();
                src = src.substring(src.indexOf("[") + 1, src.indexOf("@"));
              
sesion.setSrc(src);
                if (tipoProyecto.equals("NbMavenProjectImpl")) {
                    /*
                     * maven
                     */
                } else {

                    if (tipoProyecto.equals("NbModuleProject")) {
                        /*
                         * modulo netbeans
                         */
                    } else {
                        if (tipoProyecto.equals("J2SEProject")) {
                            /*
                             * desktop
                             */
                        } else {
                            if (tipoProyecto.equals("WebProject")) {
                                /*
                                 * web
                                 */
                                web = currentProject.getProjectDirectory().getFileObject("web").toString();
                                web = web.substring(web.indexOf("[") + 1, web.indexOf("@"));
                            }
                        }
                    }

                  
                    sesion.setWeb(web);
                    /*
                    if (currentProject.getProjectDirectory().getFileObject("nbproject") == null) {
                    Mensajeria.Mensaje(" null");
                    } else {
                    }
                     */



                }

                TopComponent tc = new AnalizadorProyectoTopComponent();
                tc.open();
                tc.requestActive();
                return true;
            
            }
        
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "Error");

        }
        return false;
    }

    @Override
    protected int mode() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected Class<?>[] cookieClasses() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected void performAction(Node[] nodes) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public String getName() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public HelpCtx getHelpCtx() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}


Creamos una ventana

En el init()
jTextFieldSRC.setText(sesion.getSrc());
jTextFieldWEB.setText(sesion.getWeb());
jTextFieldTipo.setText(sesion.getTipoProyecto());





Sunday, March 20, 2011

Tutorial básico de aplicaciones Web con NetBeans parte 4

Continuando con el tutorial básico de aplicaciones Web con NetBeans, en esta sección veremos la aplicación en ejecución y creare una pagina para mostrar los datos enviados del usuario.

Editamos el bean Login y reemplazamos la definición de la clase por
public class Login implements Serializable {
private static final long serialVersionUID = 1L;

y agregamos el import java.io.Serializable


Quedaría  de la siguiente manera


Agregamos el metodo Validar()

public String Validar(){
       return "usuario"; 
    }
El valor de "usuario" corresponde al nombre de la pagina usuario.xhtml.

Editamos index.xhtml y agregamos en  action="#{login.Validar}" a <h:commandButton
  <h:commandButton value="Entrar" action="#{login.Validar}"/> 



Creamos una pagina nueva
en Web Pages seleccionar Nuevo->Java Server Faces y en tipos de archivos JSF Page



indicamos el nombre


Agregamos <h:outputText para mostrar el nombre del usuario que se logeo
 <h:outputLabel value ="#{login.username}"/>

quedaría
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:outputLabel value ="#{login.username}"/>
    </h:body>
</html>


Ahora Ejecutamos la aplicación}

y al darle clic en el botón Entrar nos lleva a la siguiente pagina y nos muestra el nombre del usuario que ingresamos en la pagina anterior.







Friday, March 18, 2011

For(String texto

Hace unos dias conversaba con un amigo sobre la forma de utilizar los ciclos for en Java
ArrayList<String> arrayImports =new ArrayList<String>();

El utilizaba sentencias como estas

 for (int i = 0; i < arrayImports.size(); i++) {
                salida.println(arrayImports.get(i).toString());

            }

Le indique que podía mejorar su código
for(String t: arrayImports)
   salida.prinltn(t);

Wednesday, March 02, 2011

Tutorial básico de aplicaciones Web con NetBeans parte 3

Ahora procederemos a crear nuestro Bean.
Nos ubicamos en Sources Packages

dar click derecho y seleccionar ->Nuevo ->Paquete Java



escribir avbravo.com


se crea el paquete avbravo.beans

Dentro de avbravo.beans dar click derecho, seleccionar Nuevo->Otro
en Categorías: Java Server Faces y en Tipo de Archivos: JSF Managed Bean

Indicamos el nombre: Login y el Scope: Sesion (para que el valor se conserve en toda la sesión del usuario)

Tenemos el bean creado




Código generado

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author avbravo
 */
@ManagedBean
@SessionScoped
public class Login {

    /** Creates a new instance of Login */
    public Login() {
    }

}

Agregamos dos atributos de tipo String

Dar clic derecho con el mouse y seleccionar Insertar Código o presionar la combinación de teclas ALT+ INS




Seleccionamos Getters y Setters

Seleccionamos todos los campos

El IDE genera los métodos set y get para cada campo
nuestra clase quedaría de la siguiente forma
package avbravo.beans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author avbravo
 */
@ManagedBean
@SessionScoped
public class Login {
String username;
String password;

    public String getPassword() {
        return password;
    }


    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    /** Creates a new instance of Login */
    public Login() {
    }

}


Editar el archivo index.xhtml


Agregamps
En value="" agregamos #{ y se activa el asistente permitiéndonos seleccionar la clase


seleccionamos la clase login y escribimos . y se activa el asistente(podemos activarlo presionando CTRL + BARRA ESPACIADORA) y seleccionamos username

repetimos el mismo procedimiento para password.

el resultado final es este

En el próximo blog crearemos una pagina que mostrara los datos enviados por el usuario y almacenados en la clase Login

Tuesday, March 01, 2011

Nuevo portal de Java.net

La migración del portal Java.net, culmino y podemos observar una nueva interfaz




integrado con el antiguo proyecto Kenai.
Puedes visitarlo en Java.net