viernes, 24 de septiembre de 2010

Registro de Un Egreso

El tema central de nuestro proyecto trata de que un Becario pueda ir registrando sus gastos y asi sabra cuanto dinero le queda para cada tipo de rubro.
En nuestra pantalla de Ingreso de Gasto tenemos la opcion de que el usuario tome un egreso, coloque la fecha en que realizo ese egreso una pequeña descripcion y el valor que gasto en ese rubro.

Como se puede observar en la imagen se va generando una tabla con cada uno de los gastos que el becario va registrando.
Te da la opcion de eliminar uno de dicha lista si es que no esta correcto el valor.
Tambien se puede observar que en el cuadro de Valor del Gasto, se va indicando cuanto le queda por gastar, si el valor excede del monto maximo le sale un mensaje y se bloquea el boton para registrar ese valor en la lista.

El codigo del Controlador es el siguiente:


jueves, 16 de septiembre de 2010

DAW - Uso de Filtros


Uso de filtros en Java

Siempre nos surge la necesidad de desarrollar la seguridad o controlar los “eventos” de navegación, para este caso existen los Filtros, un filtro permite que determinada petición o respuesta sea analizada bajo ciertas condiciones.
Una de las principales características de un filtro es que puede ser colocado en cualquier punto del flujo de la aplicación, ya sea entre una solicitud de JSP a JSP, Servlet a Servlet, o inclusive Servlet/JSP a HTML, la única condición que debe cumplirse es que debe existir un objeto de entrada (ServletRequest) y otro de salida (ServletResponse).
A continuación una vista de como quedó nuestro web.xml con sus distintos parámetros creados.
Aquí podemos observar como quedo mapeado nuestro Servlet.

Aquí podemos observar como quedo mapeado nuestro Filtro, ademas del uso de parámetros de inicio utilizados.

Ademas seteamos parámetros de configuración de nuestra aplicación, como por ejemplo el tiempo limite de sesión, Archivo de Bienvenida y paginas de error.

BUSQUEDA EN LOS MANTENIMIENTOS

BUSQUEDA EN LOS MANTENIMIENTOS

Una opción que da nuestra página es la búsqueda de los datos que se encuentran en la base de datos para poder ser modificados.

Se ha colocado al lado del cada campo código un botón que dice “BUSCAR...”

Al presionar este botón se va hacia la base de datos, carga toda la información referente al mantenimiento que se trabajando y finalmente la muestra en una pantalla presentada en un LightBox.



Como se muesta en la imagen, se genera una tabla, la cual al presionar una fila, se cerrara y dichos campos aparecerán en cada uno de los textbox para su modificación.

Se utilizo ajax y trabajo con el manejado para esta funcionalidad.

Se presenta acontinuacion el código del LightBox, tanto de CSS como de javascript.

A continuación se presenta el código del manejador con ajax para cargar los datos dentro de una tabla y luego ser presentado en un LightBox.

jueves, 9 de septiembre de 2010

Libreria DisplayTag y Consulta de Movimientos

Libreria DisplayTag:
DisplayTag es un una librería de tags jsp open source que es de gran utilidad a la hora de trabajar con una arquitectura MVC, permite mostrar tablas dentro de los jsp sin la necesidad de recurrir al Scriplet o la utilización de varios tag de JSTL o Struts.

Entre las funcionalidades más destacadas de esta librería: paginación, ordenamiento, exportación de las tablas (en varios formatos: pdf, rtf, csv, Excel, XML).
Para Exportar:
Para Paginacion:


Consulta de Becario por Movimiento Mensual:
Esta Consulta ya esta terminada.
Hice uso de la libreria Display Tag para mostrala y exportarla a un archivo de Excel y PDF.
En el Servlet se llama a una metodo de la clase TbDetalleGasto que llena la una lista con los Gastos correspondientes a la Consulta.
Aqui se muestra el Servlet:

Mantenimiento de Tablas

Para nuestro proyecto II se busco que la aplicacion web sea mas amigable para el usuario y pueda dar mantemiento a las tablas que posee en la base de datos.En estos mantenimientos, el administrador podra:
  • Ingresar un elemento nuevo
  • Modificar un elemento Existente
  • Eliminar un elemento que existe en la base
A continuacion se agregara una imagen del mantenimiento de la tabla ciudad que existe en nuestra base de datos.

En la imagen adjunta de muestra la pantalla del mantenimiento cuando el usuario presiono uno nuevo. Como podemos ver el campo codigo se bloquea y solo permite ingresar los otros datos.

Para que los datos se almacen en la base de datos el usuario administrador debe presionar el boton guardar.

El codigo para el manejo de los mantenimientos es:


Característica Social en nuestra Aplicación



Facebook Connect

Facebook Connect es un poderoso conjunto de APIs para desarrolladores web que permiten usar la infraestructura de comentarios y autenticación de usuarios de facebook dentro de otras páginas web. Hay que aclara que para usar Facebook Connect, lo primero es tener una cuenta en Facebook.
En realidad se trata de la unión de la API ya existente de Facebook con una nueva API en javascript. Esta nueva API nos permite realizar las acciones de las que anteriormente se encargaba el propio facebook al mostrar nuestra aplicación. Son más pero lo que nos sobretodo nos interesa es saber que nos va permitir hacer 3 cosas:

  1. Iniciar sesión en Facebook Connect: una sesión de facebook iniciada en nuestro propio site. La api javascript de facebook se encargará de generar la ventana modal en nuestro site para que el usuario de permisos a nuestra web para interactuar con su usuario de Facebook.
  2. Métodos de la API desde javascript Podemos lanzar algunos de los métodos más comunes de las apis de servidor (PHP, ASP, Java, C#, etc...) mediante esta nueva API javascript.
  3. Trabajar con el lenguaje FBML (FaceBook Marckup Language) en nuestro site. Esta es la parte facil de integrar en el site, por la cual sin dejar de usar javascript meternos en lenguaje de servidor podremos mostrar al usurio sus datos de facebook mediante etiquetas especificas de facebook: Su nombre, su foto, las fotos de su amigos.
Facebook usa una rebuscada técnica (que no vamos a explicar) para poder conseguir ajax crossdomain desde nuestro site hacia el de facebook. Lo primero que tenemos que hacer para aplicarla es buscar un sitito que no nos moleste mucho dentro de nuestro dominio y crear un archivo html con el nombre "xd_receiver.htm". Dentro, este html tiene que incluir el siguiente código.
Debemos añadir las librerias JS que nos permiten conectar con facebook. Estas llamadas Javascript se recomiendan poner justo antes del cierre de body, pero pueden ser puestas en cualquier sitio.

Por último, añadir donde se quieran mostrar los comentarios, las etiquetas fbml que gestionan y montan toda la parte de los comentarios.

Fuente:
  • http://developers.facebook.com
  • http://blog.creacciona.com/como-integrar-comentarios-en-tu-web-con-facebook-connect/
  • http://parafacebook.foro-gratuito.es/desarrollo-de-aplicaciones-f5/como-usar-facebook-connect-en-nuestra-web-t3.htm




miércoles, 25 de agosto de 2010

HIBERNATE HQL


¿Cómo consultar utilizando parámetros con nombres?
Para usar la condición LIKE con un signo "%" para coincidencia de patrones en una consulta HQL con parámetros con nombre requiere algunos ajustes.
Para los que estamos familiarizados con el uso de consultas SQL podríamos pensar que algo así funcionaria:

String query = "from user u where u.name like '%:name%'"
getHibernateTemplate().findByNamedParam(query, "name", str);

Pero no, el resultado fue: org.hibernate.QueryException: char inesperada: "% error".
Lo que realmente funcionó fue poner el "%" signos en el parámetro, para que nos quede algo así:

String query = "from user u where u.name like :name"
getHibernateTemplate().findByNamedParam(query, "name", '%' + str + '%');

 Referencias:
Hibernate: a developer's notebook, por James Elliot

Ingreso de Rubro por Becario

Para la presentacion de nuestro avance se realizara el ingreso de rubros con sus respectivos valores por parte del Becario.

Los campos que se registraran seran:
  • Tipo de Rubro
  • Fecha en que se realizo el gasto
  • Valor del egreso
  • Una pequeña descripcion del egreso.

La imagen anterior muestra los campos que el becario debe ingresar, es un esquematico que solo representa los campos, no posee ningun tipo de diseño.

El combo que aparece para cada usuario depende de lo que el administrador haya seleccionado, ya que se genera desde la base de datos los diferentes rubros.

Para realizar el INSERT dentro de la base de datos, con los valores que ingreso el usuario se utiliza el siguiente codigo:

Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(this);
session.getTransaction().commit();
HibernateUtil.getSessionFactory().close();

Esta funcion se la debe colocar en cada clase donde se vaya a registrar en la base de datos. O crear una funcion de manera generica para que se la llame a esta enviando el objeto a almacenar.

Generación de Menús Dinámicos

Para la generación de Menús Dinámicos en nuestra aplicación hemos creado la página login.jsp la cual consta del siguiente codigo:

En esta página los usuarios que quieran acceder a nuestra aplicación deberán ingresar con su respectivo user y password.
Y dependiendo del rol que tenga el usuario que ha ingesado a nuestra aplicación, se generará un menú.

En la base de datos están guardados los permisos respectivos (Los menús a los que se tiene acceso) para cada rol.
Para la generación de los menús en el servlet hemos hecho uso de la librería JSTL. En el Servlet tomamos los datos de la base de datos y llenamos una lista con los permisos respectivos dependiendo del rol.
Y en la vista hemos mostrado los menus en pantalla utilizando EL, tal como se muestra acontinuación:

Generando Menus Dinámicos

La librería JSTL es un componente dentro de la especificación del Java 2 Enterprise Edition (J2EE) y es controlada por Sun MicroSystems. JSTL no es más que un conjunto de librerías de etiquetas simples y estándares que encapsulan la funcionalidad principal que es usada comúnmente para escribir páginas JSP.

Nosotros estamos haciendo uso de la core, que comprende las funciones script básicas como loops, condicionales, y entrada/salida.

Creamos una lista de enlaces con las opciones que tiene el usuario, y generamos el menu dependiendo del rol que tenga el usuario, ya sea este becario o admin.




lunes, 23 de agosto de 2010

Registro de los Egresos por Becario

CREAR LOS CAMPOS EN LA BASE DE DATOS

Nuestra aplicacion registrar los gastos que tiene cad becario cuando se encuentra en el exterior, gracias al inicio de sesion, se podra saber que becario es, cuanto tiene como valores maximo para los gastos, he ir restando este valor maximo por mes.

Luego de que se ha creado la base de datos, para poder realizar este tipo de transaccion, se deben registrar los campos necesarios para poder tomar datos relacionados.
Las tablas que necesitamos son:
  • Estudiante
  • Universidad
  • Beca
  • Rubro
  • Rubro x Beca
La tabla se que llenara con los datos que registre el Becario, se guarda en la base de datos en la tabla DETALLEGASTOS.

jueves, 19 de agosto de 2010

Base de Datos Becarios

Hemos creado una base de datos inicial, la cual cumple de alguna manera los especificado en los requisitos del sistema:

Debera programarse un sistema para la administracion y consulta de informacion manejada por el departamento de Relaciones Externas de ESPOL.
Se manejara informacion sobre los convenios con otras universidades y estudiantes que hacen uso de esos convenios. Ademas se manejara informacion de personas que reciban dinero de ESPOL para estudio de past-grado.
Para becarios de ESPOL la aplicacion permitira ingresar cuanto gasta cada becario y presentara resumenes mensuales/anuales de gastos y resumenes por rubros. Estos Rubros son:
  • Libros
  • Tesis
  • Matriculas/Tuition
  • Viajes a conferencias
Por este parrafo de descripcion de proyecto y un poco mas de informacion, generamos la siguiente base de datos que cumple con algunos requisistos antes mencionados.


Esta base contiene las siguientes tablas:
>Estudiante: Que este caso seria el becario, se tiene informacion como Codigo, Matricula, Nombre, Apellido, Fecha de Nacimiento y Estado (activo/inactivo).
>Contacto: Esta tabla permite tener informacion de una o varias personas relacionadas al ESTUDIANTE que vive en el pais y nos servira como contacto o representante del estudiante.
>Universidades: Esta tabla nos permite tener cierta informacion importante sobre las universidades con las que la ESPOL posee convenios; datos como: Nombre, Ciudad, Pais, Coordenas (para poder colocarlo en el mapa de google)
>Rubros: En esta tabla se ingresan los diferentes rubros que la ESPOL posee para facilitar a los Becarios.
>Becas: Esta tabla contiene informacion relacionada a cada estudiante y universiadad a la que fue a estudiar, posee campos como VALOR lo cual indica que costo tuvo para la institucion esta beca.
>Rubros por Beca: En esta tabla se va detallando cual es el valor maximo que cierto becario puede gastar en un determinado periodo de tiempo, esto nos ayudara a controlar los valores maximos que cada estudiante puede gastar.


Como podemos observar esta base cumple con requisitos importantes de la descripcion y ademas no ayudara a realizar cierto tipo de reportes o consultas que luego son solicitadas (reporte mensual, reporte anual, reporte por rubro, etc).



YUI - Ejemplo

Como puedimos observar YUI es una libreria muy extensa, que te permite crear multiples funciones para agregar a tu pagina web.

Te da muchas facilidades y te permite traer objetos ya creados a tu pagina, solo con configurar los parametros, colocarle ciertos atributos de diseño se podra tener una pagina muchos mas amigable sim mayor esfuerzo.

A continuacion se agregara un pequeño codigo donde se genera un calendario completo, que marca la fecha actual y que permite recorrerlo de una manera dinamica.


Como podemos ver, es muy facil crear un calendario con dicha libreria, basta colocar:
var myCal = new YAHOO.widget.Calendar("mycal");
myCal.render();
y obtenemos en nuestra pagina un nuestro calendario.

"Yahoo User Interface(YUI), como una serie de librerías escritas en JavaScript, para la construcción de aplicaciones interactivas (RIA). Liberadas bajo licencia BSD por parte de la compañía Yahoo. Dichas librerías son utilizadas para el desarrollo web específicamente para ser usadas como la programación de aplicaciones de escritorio, con componentes vistosos y personalizables y con una amplia implementación con AJAX." (Traido desde: http://tutecnologo.com/?p=310)

miércoles, 18 de agosto de 2010

Libreria YUI

YUI
Posteado por: Consuelo Cordero

La librería YUI incluye los siguientes cuatro componentes de CSS que se pueden utilizar de forma separada, conjunta o combinada de cualquier forma:

- reset.css: conjunto de estilos que eliminan y neutralizan todas las inconsistencias en el estilo por defecto que aplican los navegadores a los elementos HTML.
- base.css: conjunto de estilos que se pueden aplicar después de neutralizar los estilos por defecto del navegador y que muestran cada elemento HTML de forma adecuada.
- fonts.css: conjunto de estilos que permiten mostrar el texto con un tamaño consistente en cualquier navegador.
- grids.css: conjunto de estilos que permiten crear cientos de layouts o estructuras de páginas comunes.

Los componentes CSS de YUI funcionan tanto en el modo quirks como en el modo standards de los navegadores. No obstante, YUI recomienda activar el modo standards utilizando el siguiente DOCTYPE en las páginas:



Los grid se basan en el ancho de un " em "proporcionada por fuentes CSS. YUI Grids CSS proporciona un sistema de subdivisión de las secciones de su página con rejillas encajables. Utilice esta técnica para crear fácilmente diseños complejos que van más allá de los dos diseños de la columna que ofrece la plantilla de ajustes preestablecidos.

YUI Grids CSS funciona bien con los dispositivos móviles de gama alta en la que hemos probado. En concreto, las versiones de Webkit encontrado en los teléfonos Nokia N-Series y el iPhone de Apple tanto en diseños de rejillas hacen bien. Ambos modos de navegadores "vista de pájaro le dará una imagen de alto nivel de la página. En el iPhone, se puede navegar rápidamente a una subsección específica de una cuadrícula haciendo doble clic en él; procesador del iPhone correctamente realiza un zoom sobre las unidades de cuadrícula como cabría esperar. Cualquiera de los ejemplos Grids encontrar aquí se puede utilizar como punto de partida para la evaluación de la experiencia del usuario con estos dispositivos.

Desde una perspectiva de diseño, Grids CSS es probablemente una buena opción para las aplicaciones que están destinados a ser consumidos por los navegadores para PC como para navegadores móviles de categoría, porque el modelo de Grids tiende a asumir un mayor tamaño de pantalla, no se recomienda como punto de partida para las aplicaciones que se específica para móviles.


Fuentes:
http://developer.yahoo.com/yui
http://developer.yahoo.com/yui/examples/grids/
http://www.librosweb.es/css_avanzado/capitulo5/el_framework_yui.html

Librería YUI

Publicado por: Estefanía Morán Meza

Qué es Yui?

Yui es un set de utilidades y controles escritos en JavaScript, para crear aplicaciones web interactivas usando DOM, DHTML, AJAX y CSS.

Porqué utilizar Yui?

Es OpenSource bajo la licencia BSD y es libre para cualquier tipo de uso.
Es soportada por los principales browsers.
Tiene la comunidad de desarrolladores de Yahoo como respaldo y soporte.
Estructura modularizada y ordenada.

Ejemplo de Yui: DataTable de control: datos XML


JavaScript
YAHOO.util.Event.addListener(window, "load", function() {
YAHOO.example.XPath = function() {
var myColumnDefs = [
{key:"type"},
{key:"rank"},
{key:"subnameatt"},
{key:"age"},
{key:"name"}
];

var myDataSource = new YAHOO.util.DataSource("assets/php/xml_proxy.php");
myDataSource.responseType = YAHOO.util.DataSource.TYPE_XML;
myDataSource.useXPath = true;
myDataSource.responseSchema = {
metaFields: {rootatt:"/myroot/@rootatt", topnode:"//top", nestedatt:"//second/@nested"},
resultNode: "item",
fields: [{key:"type", locator:"@type"}, {key:"rank", parser:"number"}, "name", {key:"subnameatt", locator:"subitem/name/@type"}, {key:"age", locator:"subitem/age", parser:"number"}]
};

var myDataTable = new YAHOO.widget.DataTable("xpath", myColumnDefs, myDataSource);

return {
oDS: myDataSource,
oDT: myDataTable
};
}();
});


Fuente: http://developer.yahoo.com/yui/examples/

DAW - Libreria YUI

Libreria YUI
Creado por: Gabriel Crespo

Para empezar a trabajar con YUI, lo primero que debes hacer es descargar la librería completa. Desde la página principal de YUI: http://developer.yahoo.com/yui/ se puede pulsar directamente sobre el botón Download YUI para que nos redirija automáticamente hasta la página de descarga de la version que deseamos o podemos ir directamente a la pagina donde se encuentran todas las versiones de YUI en funcionamiento: http://yuilibrary.com/downloads/ . La versión de YUI que se utiliza actualmente es la 2.8, aunque la versión en pruebas de YUI 3.1 ya se ha publicado. YUI 2.8 se descarga mediante un archivo comprimido que ocupa unos 10 Megabyte. Una vez descargado, descomprime el archivo en cualquier directorio del sistema y verás que incluye varios directorios. De todos ellos, los más importantes para nosotros son los siguientes:
  • docs: incluye páginas de documentación y ayuda sobre todos los componentes de YUI.
  • examples: incluye ejemplos de uso de todos y cada uno de los componentes de YUI.
  • build: incluye todos los archivos JavaScript y que se deben incluir en las páginas que utilizan YUI.

lunes, 9 de agosto de 2010

Conexion con la Base De Datos

Hibernate nos permite hacer un Mapeador Objeto-Relacional
Posteado por: Consuelo Cordero Urgilés

Si estás trabajando con programación orientada a objetos y bases de datos relacionales, seguramente habrás observado que estos son dos paradigmas diferentes. El modelo relacional trata con relaciones, y conjuntos -- es muy matemático por naturaleza. Sin embargo, el paradigma orientado a objetos trata con objetos, sus atributos y asociaciones de unos con otros. Tan pronto como quieras persistir los objetos utilizando una base de datos relacional observarás que: hay una desaveniencia entre estos dos paradigmas, la también llamada diferencia objeto-relacional. Un mapeador objeto-relacional (u ORM para abreviar) nos ayudará evitar esta diferencia.

Con un buen ORM puedes tomar los objetos Java que usas en tu aplicación y decirle al ORM que los persista:


orm.save(myObject);


Esto generará automáticamente todo el SQL necesario para almacenar el objeto. Un ORM te permite cargar tus objetos igual de fácilmente:


myObject = orm.load(MyObject.class, objectId);


Un buen ORM también aportará un buen lenguaje de consultas:



List myObjects = orm.find( "FROM MyObject object WHERE object.property = 5");



Observa que este es un ejemplo muy simple, y que tus consultas podrían ser más potentes. Podrían expandir múltiples asociaciones, por ejemplo:



List myObjects = orm.find( "FROM Person person WHERE person.marriedTo.address.street LIKE %something%");




Esto probablemente se traducirá a una sentencia SQL que utiliza múltiples uniones, que sería mucho más complicada de escribir. Un ORM también rellenará automáticamente los objetos devueltos con sus datos, e incluso sus asociaciones (si es necesario).




Creación de la consulta en el Editor de consultas HQL


En el IDE se puede construir y probar consultas basadas en el Lenguaje de consulta de Hibernate (HQL) usando el Editor de consultas HQL. A medida que escribes la consulta del editor muestra el equivalente (traducido) de consultas SQL. Al hacer clic en 'HQL consulta "botón Ejecutar en la barra de herramientas, el IDE ejecuta la consulta y muestra los resultados en la parte inferior del editor.

En este ejercicio se utiliza el Editor de HQL para la construcción de simples consultas HQL que recuperar una lista de "detalles sobre la base de los actores se pongan en venta el primer nombre o apellido. Antes de agregar la consulta a la clase que va a utilizar el Editor de consultas HQL para probar que la conexión está funcionando correctamente y que la consulta produce los resultados deseados.



1. Expanda el nodo de origen package>

2. Haga clic en hibernate.cfg.xml y seleccione Ejecutar consulta HQL para abrir el Editor HQL.

3. Pruebe la conexión escribiendo de actor en el Editor de consultas HQL. Haga clic en el botón Ejecutar    consulta HQL ( Run HQL Query button ) En la barra de herramientas.


Adición de la consulta para el formulario

Ahora debe modificar DVDStoreAdmin.java añadir las cadenas de consulta y crear los métodos para construir y activar una consulta que incorpora las variables de entrada. También es necesario modificar el controlador de eventos botón para invocar la consulta correcta y agregar un método para mostrar la resultados de la consulta en la tabla.

1. Abrir DVDStoreAdmin.java  y haga clic en la pestaña Fuente.
2. Añadir las cadenas de consulta siguientes (en negrita) a la clase.

public DVDStoreAdmin() {
initComponents();
}

private static String QUERY_BASED_ON_FIRST_NAME="from Actor a where a.firstName like '";

private static String QUERY_BASED_ON_LAST_NAME="from Actor a where a.lastName like '";
Es posible copiar las preguntas del Editor de consultas HQL fichas en el archivo y luego modificar el código.
3. Agregue los métodos siguientes para crear la consulta sobre la base de la cadena de entrada del usuario.

private void runQueryBasedOnFirstName() {
executeHQLQuery(QUERY_BASED_ON_FIRST_NAME + firstNameTextField.getText() + "%'");
}

private void runQueryBasedOnLastName() {
executeHQLQuery(QUERY_BASED_ON_LAST_NAME + lastNameTextField.getText() + "%'");
}
Los métodos de llamar a un método llamado executeHQLQuery () y crear la consulta mediante la combinación de la cadena de consulta con el usuario ha introducido cadena de búsqueda.
4. Agregue el executeHQLQuery () método.

private void executeHQLQuery(String hql) {
try {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Query q = session.createQuery(hql);
List resultList = q.list();
displayResult(resultList);
session.getTransaction().commit();
}
catch (HibernateException he) {
he.printStackTrace();
}
}

El executeHQLQuery () método llama hibernación para ejecutar la consulta seleccionada. Este método hace uso de la clase de utilidad HibernateUtil.java para obtener la Session de Hibernate.
5.Fijar sus importaciones para añadir declaraciones de importación de las bibliotecas de Hibernate (org.hibernate.Query, org.hibernate.Session) y java.util.List.
6.Crear un botón Consultar controlador de eventos por el cambio a la vista Diseño y haga doble clic en el botón Consultar. El IDE crea el método queryButtonActionPerformed y muestra el método en la vista Código fuente.
7. Modifique el método queryButtonActionPerformed en la vista Código fuente, añadiendo el siguiente código de manera que una consulta se ejecuta cuando el usuario hace clic en el botón.

private void queryButtonActionPerformed(java.awt.event.ActionEvent evt) {
if(!firstNameTextField.getText().trim().equals("")) {
runQueryBasedOnFirstName();
}
else if(!lastNameTextField.getText().trim().equals("")) {
runQueryBasedOnLastName();
}
}
8. Agregue el método siguiente para mostrar los resultados en el JTable.

private void displayResult(List resultList) {
Vector tableHeaders = new Vector();
Vector tableData = new Vector();
tableHeaders.add("ActorId");
tableHeaders.add("FirstName");
tableHeaders.add("LastName");
tableHeaders.add("LastUpdated");
for(Object o : resultList) {
Actor actor = (Actor)o;
Vector oneRow = new Vector();
oneRow.add(actor.getActorId());
oneRow.add(actor.getFirstName());
oneRow.add(actor.getLastName());
oneRow.add(actor.getLastUpdate());
tableData.add(oneRow);
}
resultTable.setModel(new DefaultTableModel(tableData, tableHeaders));
}
9. Fijar sus importaciones para agregar java.util.Vector y guardar los cambios. Después de guardar el formulario que usted puede ejecutar el proyecto. 


FUENTES:


http://www.programacion.com/articulo/persistencia_de_objetos_java:_el_camino_hacia_hibernate_251

http://translate.google.com.ec/translate?hl=es&sl=en&u=http://netbeans.org/kb/docs/java/hibernate-java-se.html&ei=-ENgTJ_aGcOBlAfg2IWaCA&sa=X&oi=translate&ct=result&resnum=1&ved=0CCEQ7gEwAA&prev=/search%3Fq%3Dusing%2Bhibernate%2Bjava%2Bswing%2Bapplication%26hl%3Des%26sa%3DX

domingo, 8 de agosto de 2010

Como añadir Google Map a tu pagina Web

Publicado por Estefania Morán

Aqui encontre algunas de las funciones que me sirven para el desarrollo de la tarea.
Fuente: http://www.maestrosdelweb.com/editorial/trabajando-con-el-api-de-google-maps/

Trabajando con el API de Google Maps

Mediante el API que nos ofrecen Google Maps los desarrolladores del servicio podremos hacer uso de sus bondades. En este artículo pretendemos explicar los aspectos más relevantes de este API.
Google Maps es un servicio gratuito que nos ofrece Google con mapas desplazables del mundo entero, fotos satelitales, la ruta más corta entre diferentes ubicaciones y muchas características interesantes. Es semejante a Google Earth; una aplicación para Windows, Mac y Linux; pero con la diferencia que Google Maps es fácilmente integrable a cualquier sitio web.

¿Cómo integro un mapa de Google Maps a mi web?

Insertar un mapa en nuestro sitio web es muy simple haciendo uso de la API de Google Maps. Lo primero es solicitar nuestra API Key, debemos especificar en qué URL vamos a utilizar nuestro mapa.
Aunque es recomendable solicitar una para la dirección http://localhost con esta hagamos los ajustes necesarios y una vez que nuestro código esté listo cambiar la API Key por la de nuestro sitio en Internet para publicar la página.
Aquí tenemos una muestra del código que nos proporciona Google Maps para que utilicemos. Es importante destacar que debemos remplazar el texto resaltado en el código: COLOCAR_AQUI_NUESTRA_KEY por nuestro API Key, para que funcione correctamente.
    
    Google Maps JavaScript API Example
    
    
A continuación utilizaremos este código para explorar algunas, de las múltiples características que podemos explotar con el API de Google Maps.

¿Cómo iniciar el mapa en coordenadas específicas?

En el código que nos ofrece Google Maps para utilizar en nuestra web está predeterminada la ubicación de Palo Alto en Estados Unidos; pero podemos cambiarla estableciendo nuevas coordenadas. En el código siguiente establecimos la ubicación del mapa en la isla Madagascar, al sur de África:
function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 13);
      }
}
Hasta ahí todo está muy bien, pero cómo obtenemos las coordenadas de la ubicación que deseamos. Para esto entremos a www.maps.google.es y posicionémonos donde queremos que aparezca nuestro mapa, luego copiemos el vínculo que aparece en la parte superior derecha del mapa con el texto: “Enlazar con esta página”, que sería algo como esto:
http://maps.google.es/?ie=UTF8&ll=-19.435514,48.603516&spn=17.554213,29.882813&z=5&om=1
En el parámetro ll se almacena la latitud y longitud, respectivamente, de la ubicación que estamos observando. Copiamos esos números, los pegamos en la parte del código del API que explicaba anteriormente y hemos logrado cambiar las coordenadas iniciales de nuestro mapa.

¿Cómo establecemos el nivel de Zoom inicial?

También podemos especificar el nivel de zoom que deseamos que tenga nuestro mapa al mostrarse. Logramos esto variando el segundo parámetro del método setCenter. Por defecto está establecido en 13, pero en el código que mostramos a continuación lo hemos establecido en 5. Mientras más pequeño sea el número más cerca estaremos del mapa.
function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 5);
      }
}

¿Cómo añadir controles?

Quizás nos interese que nuestro mapa tenga controles de zoom o navegación. Pues a continuación explicaremos cómo insertarlos. Simplemente agregaremos una línea dentro de nuestra instrucción IF, con el método addControl de nuestro objeto map, especificando qué tipo de control queremos insertar, como se muestra en el código:
function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 5);
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GOverviewMapControl());
      }
    }
En el ejemplo anterior hemos agregado a nuestro mapa un selector del tipo de mapa (GMapTypeControl), un control de desplazamiento con una barra de zoom (GLargeMapControl), la escala del mapa (GScaleContro) y un mini-mapa en una esquina que nos indica la región que estamos visualizando (GOverviewMapControl). Para mayor información sobre los controles que podemos incluir vea la ayuda de la API.

¿Cómo cambiar el tipo de mapa?

Con el control para seleccionar el tipo de mapa que agregamos podemos seleccionar entre: Mapa, Satélite e Híbrido; pero podemos especificar con cuál queremos que se muestre inicialmente nuestro mapa utilizando el método setMapType del objeto map, que puede tomar los valores: G_MAP_TYPE (Mapa), G_SATELLITE_TYPE (Satélite) y G_HYBRID_TYPE (Híbrido).
En nuestro código de ejemplo insertamos una línea para especificar que nuestro mapa inicie en modo Híbrido.
function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 5);
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GOverviewMapControl());
        map.setMapType(G_HYBRID_TYPE);
      }
    }

¿Cómo insertar marcas a nuestro mapa?

Las marcas son muy útiles para resaltar ubicaciones. Con la función GMarker() podremos crear una marca en el punto que le pasamos como parámetro y la función addOverlay() nos sirve para adicionar la marca al mapa.
En el código siguiente hemos agregado una marca en la posición -19.000514, 46.603516. Aproximadamente el centro de la isla Madagascar.
function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 5);
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GOverviewMapControl());
        map.setMapType(G_HYBRID_TYPE);
        var point = new GLatLng(-19.000514,46.603516);
        map.addOverlay(new GMarker(point));
      }
En el código anterior hemos utilizado la función GLatLng() para declarar un punto en la ubicación que deseamos poner la marca, luego hemos creado una marca con GMarker() y la hemos agregado a nuestro mapa haciendo uso de addOverlay().


jueves, 5 de agosto de 2010

Daw - Google Maps Api

Google Maps API
Creado por: Gabriel Crespo
Para empezar debemos empezar por comprender que es Google Maps, para tener una idea de lo que es podemos encontrar informacion en el apartado Google Code http://code.google.com/intl/es-ES/apis/maps/index.html en el cual podremos encontrar un enlace para accedet a la ultima versión del Api de Google Maps, la cual se encuentra en la version 3.0 actualmente.

La Documentación del Api se encuentra dada por Google en :  http://code.google.com/intl/es-ES/apis/maps/documentation/javascript/reference.html
Además aqui encontraremos un tutorial con un práctico ejemplo del api: http://code.google.com/intl/es-ES/apis/maps/documentation/javascript/tutorial.html
Hibernate