Thursday, June 29, 2006

NetBeans C/C++ Pack

El Pack 5.5 para C/C++ ha sido liberado, incluyendo este dentro del IDE.
The NetBeans C/C++ Development Pack 5.5 Early Access brings functional C/C++ IDE support to the NetBeans platform.
Click aqui para ir al sitio en Netbeans

Tuesday, June 27, 2006

Tutorial sobre jdbc en java studio creator 2

En Sun publicaron un nuevo tutorial, sobre el uso de JDBC en Java Studio Creator, importante su lectura y recomendable para los desarrolladores que se interesan en el uso.
Ver articulo

Parte del codigo del articulo:
Connection conn = null ;
Statement sqlStatement = null ;
ResultSet rs = null ;
try {
javax.naming.Context ctx = new javax.naming.InitialContext() ;
DataSource ds = (DataSource)ctx.lookup(" java:comp/env/jdbc/Travel" ) ;
conn = ds.getConnection() ;
// setup the connection
conn.setAutoCommit(false) ;
// execute the query
sqlStatement = conn.createStatement() ;
rs = sqlStatement.executeQuery(" select count(*) from TRIP" ) ;
rs.next() ;
int rows = rs.getInt(1) ;
conn.commit() ;
info(" Rows in table TRIP: " + Integer.toString(rows)) ;
} catch (Exception ex) {
error(" Error counting rows: " + ex.getMessage() );
try {
if ( conn != null ) {
conn.rollback() ;
}
} catch (SQLException sqle) {
log(" Error on rollback " + sqle.getMessage() );
}
}
finally {
// close the ResultSet
if ( rs != null ) {
try {
rs.close() ;
} catch (Exception ex) {
log(" Error Description" , ex);
}
}
// close the statement
if ( sqlStatement != null ) {
try {
sqlStatement.close() ;
} catch (Exception ex) {
log(" Error Description" , ex);
}
}
if ( conn != null ) {
// cleanup and close the connection.
try {
conn.close() ;
} catch (Exception ex) {
log(" Error Closing connection " , ex);
}
}
}

Monday, June 26, 2006

panelGroup

Podemos añadir un panelGroup a una columna de una tabla, colocando diversos objetos en cada fila del table.
Acontinuación un segmento del codigo:

ui:tableColumn binding="#{inmobiliaria.tableColumn1}"
style="background-color: #C0DFFD;-rave-layout: grid"
height="125" width="300" id="tableColumn1"

ui:panelGroup binding="#{inmobiliaria.groupPanel2}"
style="background-color: #C0DFFD" id="groupPanel2"

ui:staticText binding="#{inmobiliaria.staticText2}" id="staticText2"
text="#{etiquetas.precio}"/

ui:staticText binding="#{inmobiliaria.preciostaticText}" id="preciostaticText" text="$
#{inmobiliaria.preciof}"/

ui:imageHyperlink action="#{inmobiliaria.imageHyperlink1_action}"
binding="#{inmobiliaria.imageHyperlink1}" height="80"
id="imageHyperlink1"
imageURL="#{currentRow.value['propiedades.foto1']}"
text="" width="96"/

/ui:panelGroup
/ui:tableColumn

Friday, June 23, 2006

Evolución de Java en Panamá

Hace varios años cuando empeze a utilizar Java, era en 1999, cuando me encontraba inmerso en el desarrollo de una aplicación de ventanas en 3D, para mi proyecto "Albania-5".

Utilizaba bastante punteros, y cometi un error al usuarlos y me costo el disco duro, en ese momento un amigo me hablo de un libro que estaban vendiendo sobre Java, "Como programar en Java", de Deitel/Deitel. En aquellos momentos no era mi prioridad aprender un nuevo lenguaje de programación, pero empeze a leerlo, y en sus primeras paginas, ellos elogiaban Java, lo que representaba y el futuro que ellos predecian. Anteriormente habia adquirido "Como Programar en C/C++ " de Deitel/Deitel. Esto me llamo mucho la atención, y empeze a crear algunos applets, mis primeras experiencias con Java, luego entre a algunas aplicaciones de escritorio, para aquellos dias, M$, era la compañia soñada para muchos de nosotros, que pensabamos que algun dia trabajariamos como desarrolladores alla, mi hermanita Genawefa, me dijo una de las más grandes verdades, que aun la recuerdo y que un inicio me parecio no muy adecuada, y que me llevo a entrar al 100% al aprendizaje de Java, "Nunca podras trabajar alla, olvidate de eso", (coloco la traducción al español, ya que ella me lo dijo en ingles).
Me sente a meditar y tenia razón, debia empezar a buscar más alla de lo que nos habian enseñado y que talvez seria mejor, y ese fue mis inicios con java.

Muchos de mis amigos consideraban que era un error aprender Java, para ellos era y todavia lo consideran como una heregia, y de ese diciembre de 1999 hasta a hora , todavia muchos siguen pensando igual, lastimosamente o favorablemente no lo se, pero me mantengo en mi posición.
A inicio de 2001, con un grupo de amigos formamos panajug, y lo registramos en Sun MicroSystem. (Enlace Aqui)
La verdad el grupo nos mantuvimos trabajando en el aprendizaje de Java, compartiendo conocimiento, experiencias y manuales, y no llegamos a trabajar mucho en la pagina del grupo.
Luego uno de los miembros fundadores tenia que regresar a Estados Unidos , y el grupo como tal, empezo a tomar rumbos individuales.
Despues encontre con javahispano.org una excelente pagina cuyo framework creo mi amigo Alberto Molparces, y desde entonces es mi sitio de referencia en español, una gran comunidad.

Thursday, June 22, 2006

Creando un proyecto en java studio creator Parte 1

Iniciare esta serie de tutoriales basicos sobre la creación de un proyecto completo utilizando java studio creator 2, de antemano todo lo aplicado aqui se ha tomado e investigado del sitio oficial de java studio creator, pudes visitarlo haciendo click aqui .
Empezare dividiendolo en varias pasos:
I. Creación del proyecto desde java Studio Creator.











Desde el menu Archivo seleccionamos Nuevo Proyecto









Indicamos en categoria Web y en Proyectos. Aplicacion Web JSF















Indicamos el nombre del proyecto















Nos crea la estructura del proyecto y la pagina principal Page1.jsp

Proximamente nuevos tutoriales j2me

Estuve conversando ayer con Karol Harezlak, el creador del tutorial splash screen para Dispositivos Mobiles, me informo que esta terminando dos nuevos tutoriales, y que me lo estara enviando para la traducción y publicacion en el blog.


Wednesday, June 21, 2006

Validar usuarios logeados

Si deseamos validar que los usuarios se hayan validado , para controlar el acceso a cualquier pagina, podemos hacerlo de varias maneras, yo utilizo la siguiente:
Cuando se logea en la pagina de login, guardo el nombre del usuario en el bean de sesión, luego en el metodo prerender() de la pagina que deseo verificar compruebo el valor del bean, si esta vacio lo envio a la pagina de login.


public void prerender() {
try{
String username = getSessionBean1().getUsername();
if (username == null) {
// info("No se ha logeado ningun usuario");
this.getExternalContext().redirect("faces/login.jsp");
return;
}
if ( getSessionBean1().getGrupoUsuario().equals("administrador")) {
// info("Bienvenido en prender" + "" +getSessionBean1().getUsername() );
} else{
this.getExternalContext().redirect("faces/login.jsp");
return;
}
}catch(Exception e) {
log("Error ", e);
error("Error " + e);
}
}

Monday, June 19, 2006

Evento onMouseOver Parte 2

Ahora colocamos el java script que tomara el url de la imagen actual y cambiara la imagen principal.




function imagen1()
{
var origen = document.getElementById("form1:foto1ImageHyperlink_image");
var img1 = document.getElementById("form1:ampliadaimageHyperlink_image");
img1.src = origen.src;
}

function imagen2()
{
var origen = document.getElementById("form1:foto2ImageHyperlink_image");
var img1 = document.getElementById("form1:ampliadaimageHyperlink_image");
img1.src = origen.src;
}
function imagen3()
{
var origen = document.getElementById("form1:foto3ImageHyperlink_image");
var img1 = document.getElementById("form1:ampliadaimageHyperlink_image");
img1.src = origen.src;
}






Evento onMouseOver Parte 1

En este ejemplo tenemos seis imagenes de tamaño pequeño y una de tamaño ampliado, deseamos cambiar las imagenes con solo pasar el mouse sobre la imagen (evento mouseover).

height="50" id="foto1ImageHyperlink" imageURL="#{propiedadesVer.propiedadesDataProvider.value['propiedades.foto1']}"
onMouseMove="imagen1(this);return false;" style="left: 310px; top: 219px; position: absolute" width="66"/>


height="50" id="foto2ImageHyperlink" imageURL="#{propiedadesVer.propiedadesDataProvider.value['propiedades.foto2']}"
onMouseMove="imagen2(this);return false;" style="left: 382px; top: 219px; position: absolute" width="66"/>
<ui:imageHyperlink action="#{propiedadesVer.foto3ImageHyperlink_action}" binding="#{propiedadesVer.foto3ImageHyperlink}" border="0"
height="50" id="foto3ImageHyperlink" imageURL="#{propiedadesVer.propiedadesDataProvider.value['propiedades.foto3']}"
onMouseMove="imagen3(this);return false;" style="left: 454px; top: 219px; position: absolute" width="66"/>

height="50" id="foto4ImageHyperlink" imageURL="#{propiedadesVer.propiedadesDataProvider.value['propiedades.foto4']}"
onMouseMove="imagen4(this);return false;" style="left: 312px; top: 291px; position: absolute" width="66"/>

height="50" id="foto5ImageHyperlink" imageURL="#{propiedadesVer.propiedadesDataProvider.value['propiedades.foto5']}"
onMouseMove="imagen5(this);return false;" style="left: 382px; top: 291px; position: absolute" width="66"/>

height="50" id="foto6ImageHyperlink" imageURL="#{propiedadesVer.propiedadesDataProvider.value['propiedades.foto6']}"
onMouseMove="imagen6(this);return false;" style="left: 454px; top: 291px; position: absolute" width="66"/>

height="50" id="foto7ImageHyperlink" imageURL="#{propiedadesVer.propiedadesDataProvider.value['propiedades.foto7']}"
onMouseMove="imagen7(this);return false;" style="left: 312px; top: 361px; position: absolute" width="66"/>

Wednesday, June 14, 2006

Buscar el primer registro de un DataProvider

Este codigo, encuentra el valor del primer registro de un DataProvider


private String buscarUltimoCodigoControl() {
try{

int numeroRegistros;
numeroRegistros = mensajescontrolDataProvider.getRowCount();
if ( numeroRegistros == 0){
info("No hay registros de control");

} else{

mensajescontrolDataProvider.cursorFirst();
String codigox = (String)
mensajescontrolDataProvider.getValue("mensajescontrol.codigo");
return codigox;
}
} catch (Exception e) {
log("Error: " , e);
error("Error "+e);
mensajescontrolDataProvider.revertChanges();
}
return null;
}

Friday, June 09, 2006

google Spreadsheet

Mis primeras hojas con Spreadsheet de google, el poder de AJAX, nos estamos acercando a la eliminación de los paquetes informaticos en nuestras Pc, google nos permite que dispongamos de ellos desde nuestro navegador.


Algunas de las funciones que trae incorporada.

Thursday, June 01, 2006

Editando tableItem con mobility pack

en mi busqueda de información sobre la edición de tableitem en mi aplicacióm movil encontre un buen ejemplo de como realizarlo bastante sencillo.
Puedes verlo aqui