viernes, 27 de febrero de 2015

Instalación de Windows 7 desde pendrive

1. Abrir consola ( se escribe en el buscador de inicio cmd y presionas la tecla de windows + R y escribes cmd)


2. Al salir la consola de comandos, escribe: “diskpart”


3. list disk o list volume (Windows XP), Muestra un listado de todos los discos duro o unidades de almacenamiento de tu computador


Nota: EL PASO SIGUIENTE ES MUY IMPORTANTE QUE LO HAGAS CORRECTAMENTE YA QUE SI COLOCAS OTRO NÚMERO PODRIAS DAÑAR ALGUNA PARTICIÓN Y PERDER TU INFORMACIÓN


3. Select disk 2 –>” el número puede variar. El número correcto según tu caso lo obtienes del comando anterior.
Para saber exactamente cual es tu disco es solo debes fijarte en la capacidad que tienen, si usas un pendrive debe ser el con menor capacidad, recuerda fijarte si esta en GB o MB la medida de los tamaños.” (en Windows XP usar commando “select volume”)


4. Escribe el comando “clean”, para borrar toda la informacion del pendrive.


5. Escribe el comando “create partition primary”.


6. Escribe el comando “active”.


7. Escribe el comando “format fs=NTFS quick”.


8. Escribe el comando “assign”.


9. Escribe el comando “exit”.


10. Tener la imagen del sistema operativo a instalar
11. La unidad de imagen puede ser: “g:”, “f:”, entre otras.
12. Escribe “g:” en la consola
13. Luego colocaras “dir”.


*nota: la siguiente imagen es un ejemplo de los pasos anteriores.



14. Después de hacer estos pasos  debes escribir Bootsect.exe  /NT60 X: (Siendo X: la unidad del pendrive).
Sí lo hiciste bien, saldrá en inglés un mensaje de éxito.


15. Escribes “exit”, para salir de la consola.

16. Copiar y pegar el contenido de la imagen al pendrive y luego bootear desde el equipo con la bios para probar e instalar el mismo.

sábado, 16 de junio de 2012

Curso II-Extensión de Widgets

Éste proyecto tiene como finalidad explicar la extensión de un widget, para ello iremos paso a paso explicando el proyecto con código comentado. 

El proyecto estará explicado bajo la arquitectura MVC, por ello considero conveniente empezar desde el modelo, luego la vista realizada con el framework ZK y después el controlador.

Siga cada uno de los pasos para y vaya integrando usted mismo el proyecto teniendo en cuenta las siguientes consideraciones.

Descargue el plugin de zk para netbeans en su versión 6.0.1CE desde el link.

Luego instale el plugin dentro de su versión de netbeans.
Si desea conocer los pasos para poder instalar el plugin. Visite la siguiente entrada del blog.
http://gerardomontilla.blogspot.com/2011/04/curso-de-java-ii-parte.html

Después de haber realizado estos pasos estableceremos la parte del modelo simulando una base de datos.


Luego de creadas éstas estructuras, empezaremos por la clase persona, que tiene el siguiente código:



Este es el código para copiar y pegar en el netbeans.

package wt.rocket.model.bean;


/**
 * Representa el Bean de Persona
 *
 * @author Waytech
 */
public class Persona {


  protected int id;
  protected String nombre;
  protected String email;
  protected String telefono;
  protected String direccionCorta;


  public Persona() {
    this.nombre = "Persona sin nommbre";
    this.email = "";
    this.telefono = "";
    this.direccionCorta = "";
  }
  
  public Persona(int id, String nombre, String email, String telefono, String direccionCorta) {
    this.id = id;
    this.nombre = nombre;
    this.email = email;
    this.telefono = telefono;
    this.direccionCorta = direccionCorta;
  }


  public int getId() {
    return id;
  }


  public void setId(int id) {
    this.id = id;
  }


  public String getDireccionCorta() {
    return direccionCorta;
  }


  public void setDireccionCorta(String direccionCorta) {
    this.direccionCorta = direccionCorta;
  }


  public String getEmail() {
    return email;
  }


  public void setEmail(String email) {
    this.email = email;
  }


  public String getNombre() {
    return nombre;
  }


  public void setNombre(String nombre) {
    this.nombre = nombre;
  }


  public String getTelefono() {
    return telefono;
  }


  public void setTelefono(String telefono) {
    this.telefono = telefono;
  }
}

Una vez creada la clase persona, iremos a la clase BD, que simula una base de datos:
Tiene el siguiente código:



Aquí está el código para copiar y pegar en el netbeans.

package wt.rocket.model.bd;


import java.util.ArrayList;
import wt.rocket.model.bean.Persona;


/**
 * Simulador de Base de Datos
 *
 * @author Waytech
 */
public class BD {


  private ArrayList<Persona> personas;


  public BD() {
    crearPersonas();
  }


  /**
   * busca persona por id
   *
   * @param id
   * @return
   */
  public Persona buscarPersona(int id) {
    if (id != 0) {
      for (Persona p : personas) {
        if (p.getId() == id) {
          return p;
        }
      }
    }
    return new Persona(); //persona vacía
  }


  private void crearPersonas() {
    personas = new ArrayList();
    personas.add(new Persona(1, "Gabriel Pérez", "gabrielperez@waytech.com.ve", "0426-5538165", "San Felipe - Yaracuy"));
    personas.add(new Persona(2, "Gerardo Montilla", "gerardomontilla@waytech.com.ve", "0416-1041108", "Cabudare - Lara"));
  }


  public ArrayList<Persona> getPersonas() {
    return personas;
  }
}


Hasta aquí vamos encaminados a realizar la extensión de un widget.

Iremos a crear la vista principal..

#El código para copiar es el siguiente, recuerda seguir la estructura de los paquetes de la imagen inicial.
<?page title="DESICA - Curso ZK 2.0" cacheable="true" language="xul/html" zscriptLanguage="Java" contentType="text/html;charset=UTF-8"?>
<!--
Proyecto ZK_ExtendWidget
Ilustra cómo agregar características a un widget via controlador.
Resumen:
Cambios en la vista: Ninguno.
Cambios en El controlador:
- usar elemento A para el nombre,
- usar subclase de A, (con herencia)
- programar click de elemento A
Cambios en el modelo.
-->
<zk xmlns="http://www.zkoss.org/2005/zul">
  <style src="css/estilo1.css"/>
  <window title="Extender un Widget">
    <include src="PersonaList.zul"/>
  </window>
</zk>

Posteriormente realizaremos un grid para mostrar la información:

PersonaList.zul

Fijaos que estamos utilizando el atributo apply para establecer el vinculo entre el controlador que explicaremos a continuación. El código para pegar en el netbeans es el siguiente:

<zk xmlns="http://www.zkoss.org/2005/zul">
  <div apply="wt.rocket.ctrl.CtrlPersonaList" width="680px">
    <label value="Personas" sclass="titulo_ventana"/>
    <div align="center">
      <grid id="grid" style="border:normal" mold="paging" pageSize="10">
        <columns sizable="true">
          <column label="#"         width="25px"/>
          <column label="Nombre"    width="150px"/>
          <column label="Teléfono"  width="100px"/>
          <column label="Email"     width="200px"/>
          <column label="Dirección"/>
        </columns>
      </grid>
    </div>
  </div>
</zk>


Tambien crearemos una vista para el resumen del usuario:

El código para copiar es el siguiente:

<zk xmlns="http://www.zkoss.org/2005/zul">
<!--  <div apply="wt.rocket.ctrl.CtrlLiderResumen" width="450px">-->
  <div width="450px">
    <label id="tituloVentana" value="Resumen" height="20px" sclass="titulo_ventana"/>
    <grid>
      <columns>
        <column width="80px"/>
        <column label=""/>
      </columns>
      <rows>
        <row>
          <label value="Nombre" sclass="etiqueta_campo"/>
          <label id="etqNombre" value=""/>
        </row>
        <row>        
          <label value="Email" sclass="etiqueta_campo"/>
          <label id="etqEmail" value=""/>
        </row> 
        <row>        
          <label value="Teléfono" sclass="etiqueta_campo"/>
          <label id="etqTelefono" value=""/>
        </row> 
        <row>        
          <label value="Dirección" sclass="etiqueta_campo"/>
          <label id="etqDireccion" value=""/>
        </row> 
      </rows>
    </grid>
  </div>
</zk>

Creamos el controlador para la vista PersonaList.zul





El código para copiar es el seguiente:

package wt.rocket.ctrl;

import java.util.ArrayList;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.*;
import wt.rocket.model.bd.BD;
import wt.rocket.model.bean.Persona;
import wt.rocket.widget.LinkNombrePersona;

/**
 *
 * @author WayTech
 */
public class CtrlPersonaList extends GenericForwardComposer {

  Grid grid;
  Label etqNro, etqEmail, etqTelefono, etqDireccion;
  //Para el nombre no usaremos un Label, sino un enlace (widget tipo A)
  LinkNombrePersona linkNombre;
  //datos:
  ArrayList lista;
  BD bd = new BD();

  @Override
  public void doAfterCompose(Component comp) throws Exception {
    super.doAfterCompose(comp);
    inicio();
  }

  void inicio() {
    buscarData();
    mostrarData();
  }

  /**
   * método que simula la búsqueda de la data
   */
  void buscarData() {
   lista = bd.getPersonas();
  }

  public void mostrarData() {
    if (lista == null) {
      System.out.println("CtrlPersonaList: Lista Vacía");
      //TODO: mostrar en la vista que no hay datos
      return;
    }
    ListModelList model = new ListModelList(lista);
    grid.setModel(model);
    grid.setRowRenderer(new RowRenderer() {

      public void render(Row row, Object data, int i) throws Exception {
        //se extrae la data
        Persona p = (Persona) data;

        //se crean los widgets con la data:
        etqNro = new Label("" + ++i);
        linkNombre = new LinkNombrePersona(p);
        etqTelefono = new Label(p.getTelefono());
        etqEmail = new Label(p.getEmail());
        etqDireccion = new Label(p.getDireccionCorta());
        
        //Enfoque B: no usado.
        /*
        linkNombre.setIdPersona(p.getId());
        linkNombre.setNombre(p.getNombre());
        linkNombre.setTelefono(p.getTelefono());
        linkNombre.setEmail(p.getEmail());
        linkNombre.setDireccionCorta(p.getDireccionCorta());
        */

        //se anexan los widgets a la fila
        etqNro.setParent(row);
        linkNombre.setParent(row);
        etqTelefono.setParent(row);
        etqEmail.setParent(row);
        etqDireccion.setParent(row);
      }
    });
  }
}

Luego realizamos la clase sesion usando la clase Sessions, ella permite establecer unas variables globales a través de toda la aplicación del sistema. Son de mucha utilidad cuando necesitamos realizar un pase de variables entre diferentes controladores.


El código para copiar es el siguiente:

package wt.rocket.general;

import org.zkoss.zk.ui.Sessions;

/**
 * Clase para gestionar variables de sesión
 * @author Waytech
 */
public class Sesion {

  /**
   * setea el valor de una variable de sesión
   */
  public static void setVariable(String nombre, Object valor) {
    Sessions.getCurrent().setAttribute(nombre, valor);
    System.out.println("SET variable de sesión [" + nombre + "]=" + valor);
  }

  /**
   * obtiene el valor de una variable de sesión
   * @return 
   */
  public static Object getVariable(String nombre) {
    System.out.println("GET variable sesión [" + nombre + "]=" + Sessions.getCurrent().getAttribute(nombre));
    return Sessions.getCurrent().getAttribute(nombre);
  }

  /**
   * muestra una variable de sesión via consola
   */
  public static void mostrarVariableSesion(Object claseInvocante, String metodo, String variable, Object valor) {
    System.out.println(claseInvocante.getClass() + "- " + metodo + ": SESION: " + variable + "=" + valor);
  }
 
}

La clase LinkNombrePersona tiene como objetivo establecer el uso compartido de la información en la extensión de widgets.



Aquí está el código para copiar:

package wt.rocket.widget;

import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zul.A;
import org.zkoss.zul.Messagebox;
import wt.rocket.general.Sesion;
import wt.rocket.model.bean.Persona;

/**
 * Extensión de Widget: Link
 *
 * @author Waytech
 */
public class LinkNombrePersona extends A {

  int idPersona;
  String nombre;
  protected String email;
  protected String telefono;
  protected String direccionCorta;
  Persona persona;

  /**
   * Crea el link con el nombre de la persona
   *
   * @param label el nombre de la persona
   */
  public LinkNombrePersona(String label) {
    //llamada al constructor de clase org.zkoss.zul.A
    super(label);
  }

  public LinkNombrePersona(Persona p) {
    super(p.getNombre());
    setPersona(p);
    programarEventoClick();
  }

  private void programarEventoClick() {
    this.addEventListener(Events.ON_CLICK, new EventListener() {

      public void onEvent(Event event) throws Exception {
        //debug:
        System.out.println("LinkPersona -> id = " + persona.getId());
        System.out.println("LinkPersona -> nombre = " + persona.getNombre());

        String mensaje = "Persona. Id: " + persona.getId()
                + ". Nombre: " + persona.getNombre()
                + ". Teléfono: " + persona.getTelefono()
                + ". Correo: " + persona.getEmail()
                + ". Dirección: " + persona.getDireccionCorta();

        Messagebox.show(mensaje, "Persona Resumen", Messagebox.OK, Messagebox.INFORMATION);
        //Para efectos prácticos se muestra la data en un Messagebox, pero se puede usar otra vista diseñada por el usuario,
        //a la cual se pasa la data usando variables de sesión
      }
    });
  }
  
   public void asignarTooltip(String texto) {
    this.setTooltiptext(texto);
  }

  public Persona getPersona() {
    return persona;
  }

  final public void setPersona(Persona persona) {
    this.persona = persona;
  }

  //OTRO ENFOQUE DEL METODO, USANDO EL ID
  private void programarEventoClick(final int id) {
    this.addEventListener(Events.ON_CLICK, new EventListener() {

      public void onEvent(Event event) throws Exception {
        //debug:
        System.out.println("LinkPersona -> id = " + id);
        System.out.println("LinkPersona -> nombre = " + nombre);

        String mensaje = "Persona. Id: " + id
                + ". Nombre: " + nombre
                + ". Teléfono: " + telefono
                + ". Correo: " + email
                + ". Dirección: " + direccionCorta;

        Messagebox.show(mensaje, "Persona Resumen", Messagebox.OK, Messagebox.INFORMATION);

        //set variables de sesión:
        Sesion.setVariable("id", id);

      }
    });
  }

  public void setIdPersona(int id) {
    this.idPersona = id;
    programarEventoClick(id);
    asignarTooltip("Ver detalles");
  } 
}



















domingo, 12 de febrero de 2012

Últimas descargas




Parte I


Para todos aquellos seguidores del Blog, un saludo.
Algunas actualizaciones interesantes han salido, como el lanzamiento de la versión 5.0.10 de ZK en su versión comunal, jajaja.
Les invito a descargarla y probarla, aquí está el link.
http://sourceforge.net/projects/rem1/
Tambien y con algo de tiempo ya, el netbeans 7.1
http://netbeans.org/downloads/
El cual ha mejorado notablemente desde la versión 6.9 en cuanto a funcionalidad y rendimiento.
Tambien les dejo los links de MySQL, que tambien han tenido actualizaciones.
Les sugiero que instalen el servidor MySQL y el Workbench (Para ver las bases de datos de forma separada).
http://dev.mysql.com/downloads/mysql/
Para el Workbench
http://dev.mysql.com/downloads/workbench/5.2.html
Ésto por alguna razón siempre ha sido mejor colocarlo por separado. Despues subiré una forma de configurar la seguridad por consola, ya que varias veces me ha fallado con el instalador.

Parte I








sábado, 3 de diciembre de 2011

V-Textbox JAVA+ZK


Index course:


A final de cuentas las imágenes lo cuentan mejor. Al final está el código para que puedan copiar y pegar.
Objetivos:
- Crear una caja de texto en la vista.
- Asignarle un valor desde la clase controladora.
- Ver como interactuan los componentes.





------------------------- CÓDIGO PARA LA CLASE CONTROLADORA ---------------------------

package prueba.controladores;

import org.zkoss.zk.ui.Components;
import org.zkoss.zk.ui.ext.AfterCompose;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;

/**
 * HASTA AQUÍ LLEGO
 * @since Jueves 01/12/2011 11:08 PM.
 * @author Gerardo José Montilla Virgüez, Way Technologies Consulting Group C.A.
 * @see http://www.waytech.com.ve
 * Clase creada para el software SGI
 */
public class ControladorInicio extends Window implements AfterCompose {

    protected Textbox txtHolaMundo;
    //ESTE METODO SIEMPRE SE EJECUTA POR DEFECTO
    //THIS METHOD ALWAYS EXECUTE BY DEFAULT WHEN THIS CLASS IS CALLED

    public void afterCompose() {
        Components.wireVariables(this, this);
        Components.addForwards(this, this);
        txtHolaMundo.setText("Hola mundo !");
    }
}

-------------- CÓDIGO PARA EL INDEX --------------------

<?page id="testZul" title="Compras - Archivo de texto" cacheable="false"
language="xul/html" zscriptLanguage="Java" contentType="text/html;charset=UTF-8" title="Compras"?>
<zk xmlns="http://www.zkoss.org/2005/zul" 
    xmlns:h="http://www.w3.org/1999/xhtml" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">    
    <div align="center">
        <window id="vtnVenta" use="prueba.controladores.ControladorInicio" >
            <textbox id="txtHolaMundo">
                
            </textbox>
        </window>
    </div>
</zk>

jueves, 1 de diciembre de 2011

IV-II-Creando un controlador, Curso de Java+ZK




Index course:



Podemos copiar este segmento de código en nuestro archivo index.zul
Luego iremos explicando que significan cada uno de los elementos.
Les debo los comentarios para las imágenes..











ÉSTE ES EL CÓDIGO QUE COLOCARAN EN EL index.zul

<?page id="testZul" title="Compras - Archivo de texto" cacheable="false"
language="xul/html" zscriptLanguage="Java" contentType="text/html;charset=UTF-8" title="Compras"?>
<zk xmlns="http://www.zkoss.org/2005/zul"
    xmlns:h="http://www.w3.org/1999/xhtml"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">  
    <div align="center">
        <window id="vtnVenta" use="prueba.controladores.ControladorInicio" >
        </window>
    </div>
</zk>

ESTE ES EL DE LA CLASE.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prueba.controladores;

import org.zkoss.zk.ui.Components;
import org.zkoss.zk.ui.ext.AfterCompose;
import org.zkoss.zul.Window;

/**
 * HASTA AQUÍ LLEGO
 * @since Jueves 01/12/2011 11:08 PM.
 * @author Gerardo José Montilla Virgüez, Way Technologies Consulting Group C.A.
 * @see http://www.waytech.com.ve
 * Clase creada para el software SGI
 */
public class ControladorInicio  extends Window implements AfterCompose {

    public void afterCompose() {
        Components.wireVariables(this, this);
        Components.addForwards(this, this);
    }
 
}

Si lo corren y no aparece nada, vamos bien jajaja.
Gracias por la visita

miércoles, 30 de noviembre de 2011

IV Parte Curso de Java+ZK-Creación de un controlador-1


Index course:




Ésta parte del curso tendrá como objetivos.

  1. Creación de un paquete en JAVA.
  2. Creación de una clase en JAVA.
  3. Integración de la clase realizada con una vista hecha en ZK Nota:Recuerde el Click sobre la imagen para aumentar de tamaño.

Creación del paquete




Creación de la clase en el paquete.


Colocando el nombre a la clase


Clase desplegada.