28 de junio de 2008

Estado de las Peticiones Ajax Complejas



Para un modo mas interactivo con el usuario se utilzan esta ventanita para informar lo que esta pasando en el momento y no pensar que la aplicacion ya no responde.
Creo una pagina llamada Cargando donde mostrare mi mensaje cuando este la peticion en espera.

mi serviceCall se llama getAfiliadoList y invoco a la pagina Cargando con un modalDialgo
antes de ejecutar el servicall. Cuando termino de ejecutar solo lo hago desaparecer.

getAfiliadoListBeforeUpdate: function(inSender, ioInputData) {
app.pageDialog.showPage("Cargando",true,150,50);
},
getAfiliadoListSuccess: function(inSender, inData) {
app.pageDialog.dismiss();
},

para mas informacion en la comunidad de WaveMaker se creo este post interesante:
con un proyecto de ejemplo basico
http://dev.wavemaker.com/forums/?q=node/1770#comment-5287

26 de junio de 2008

Publicacion del desarrollo del Sitio de ColMed Tarija

Con mucho gusto puedo recibir por parte de WaveMaker una invitacion para poder realizar esta publicacion la cual indica como se realizo y las soluciones a los problemas para desarrollar el Sitio Web de ColMed.

Por otra parte se comento tambien la manera de encontrar una herramienta util y para desarrollo rapido de ultima tecnoligia y con elementos open source destacados como Dojo, Hibernate, JSON, SpringFramework entre otros.

Es un orgullo poder impulsar y destacar a los profesionales de esta ciudad Tarija en esta area del desarrollo de software es por eso que seguire haciendo lazos en las companias mas importantes del momento como las ya consagradas en esta area.

Esta publicacion (esta en ingles) la pueden visitar desde aqui http://www.wavemaker.com/solutions/case_study_uajms.html

24 de junio de 2008

Mejorando el Login Panel


Podemos mejorar el Login Panel con estos dos complementos utiles: Campo de Entrada de Usuario seleccionado o con "focus" y Evento Enter en Ingresar (ya explicado en el Post "Eventos del Teclado").

Para poder poner por defecto el Campo de Entrada de Usuario seleccionado o con "focus" se aumenta el codigo en el Script de inicio o Start:

start: function() {
dojo.byId("dijit_form_ValidationTextBox_0").focus();
},

donde dijit_form_ValidationTextBox_0 es el Campo de Entrada de Usuario y lo podemos confirmar con el Firebug haciendo una inspeccion sobre el mismo y leyendo el atributo id del objeto


Informacion redactada del link http://dev.wavemaker.com/forums/?q=node/1474

22 de junio de 2008

Select Editor seleccionado por defecto

Select Editor seleccionado por defecto o cuando se inicie la pagina donde se encuentran.



Primero tenemos que colocar nuestro Select editor "organizacionEditor1" en el Panel donde queremos trabajar.
Si tenemos por ejemplo un serviceCall que devuelva una listado de la base de datos por ej. "getOrganizacionList" y luego uniremos el serviceCall con el Select editor.
lo que haremos es crear un evento onSuccess y elegir codigo javascript todo esto del serviceCall "getOrganizacionList".
y en el script de onSucces colocamos:

getOrganizacionListSuccess: function(inSender, inData) { this.organizacionEditor1.setDataValue(1); },

setDataValue(1) representa que se esta seleccionado el primer item del select editor.

19 de junio de 2008

Eventos del teclado



Se pueden crear eventos del teclado y unirlos a un determinado widget como por ejemplo:

Al presionar Enter en el turbo.Editor de la Contraseña en el Login Panel (Panel de Acceso)
podemos ejecutar el boton Iniciar








Este el codigo fuente:

dojo.declare("Login", turbo.Part, {
start: function() {
this.connect(this.passwordInput.domNode,"keyup", this, "keyup");
},
loginButtonClick: function(inSender) {
var def = dojo.xhrPost({
url: 'j_acegi_security_check',
content : {
j_username : this.usernameInput.getDataValue(),
j_password : this.passwordInput.getDataValue(),
acegiAjaxLogin : 'true'
},
handleAs: "json",
load: function(response, ioArgs) {
if (response.url) {
location.href = response.url;
} else if (response.error) {
app.login.loginErrorMsg.setCaption("Usuario o Contraseña incorrectos.");
}
}
});

},
keyup: function(e) {
if (e.keyCode == dojo.keys.ENTER)
turbo.fire(this.loginButton, "onclick");
},

_end: 0
});

18 de junio de 2008

Consultas Utiles HQL


Seleccionar las ultimas 4 noticias
Query Name: getRecientNotices
Query: from Noticia n where n.id >= ( select (max(m.id)-4) from Noticia m) order by n.id desc

Consultas Utiles HQL

Buscar socios por especialidad
Query Name: getSocioByEspecialidad
Query: from Socio s where upper(s.especialidad) like upper('%'||:esp||'%')

Consultas Utiles HQL


Listar las actividades del mes y año actual




Query Name: getActividadActual
Query: from Actividad a where a.ano=(extract(year from current_timestamp())) and a.mes=CASE WHEN (extract(month from current_timestamp()))=1 THEN 'Enero'
WHEN (extract(month from current_timestamp()))=2 THEN 'Febrero'
WHEN (extract(month from current_timestamp()))=3 THEN 'Marzo'
WHEN (extract(month from current_timestamp()))=4 THEN 'Abril'
WHEN (extract(month from current_timestamp()))=5 THEN 'Mayo'
WHEN (extract(month from current_timestamp()))=6 THEN 'Junio'
WHEN (extract(month from current_timestamp()))=7 THEN 'Julio'
WHEN (extract(month from current_timestamp()))=8 THEN 'Agosto'
WHEN (extract(month from current_timestamp()))=9 THEN 'Septiembre'
WHEN (extract(month from current_timestamp()))=10 THEN 'Octubre'
WHEN (extract(month from current_timestamp()))=11 THEN 'Noviembre'
WHEN (extract(month from current_timestamp()))=12 THEN 'Diciembre'

END

Usando el FCKEditor en Wavemaker



Usar un widget como el FCKEditor para las aplicaciones web de tipo CMS nos facilita la administracion de contenidos y ayuda a que la nuestra aplicacion sea mas dinamica.

En los foros de Wavemaker puedes encontrar como se realiza la inclusion de una widget de otra empresa en wavemaker este es el enlace http://dev.wavemaker.com/forums/?q=node/1624

Mis cosas

Powered By Blogger