ViewObject Read-Only en Runtime
Muchas veces al desarrollar una aplicación tenemos pantallas que en determinados momentos queremos que sean de Read-Only “solo lectura”.
Si queremos ahorrarnos el tener que hacer una pantalla idéntica, pero con los atributos del ViewObject en RO. Lo que podemos hacer es cambiar el estado de los atributos en tiempo de ejecución.
Esto puede ser de utilidad si lo hacemos antes de determinadas navegaciones, en el caso de que tengamos una pantalla que desde ciertos sitios es modificable y desde otros no.
Aquí les dejo el codigo:
//ponemos los atributos del iterador a RO
AttributeDef ats[] = View.getAttributeDefs();
for (int i = 0; i < ats.length; i++){
((AttributeDefImpl)ats[i]).setUpdateableFlag(AttributeDefImpl.READONLY);
}

Hola! Estoy utilizando tu metodo para lo siguiente: mi aplicación tiene diferentes usuarios que segun un rol asignado, tienen permisos de modificacion o no sobre ciertas páginas. Es decir, en funcion del rol del usuario logueado tengo que mostrar ciertos ViewObject’s con todos sus atributos a readonly.
Para ello, hago lo siguiente: cada vez que se loguea un usuario, obtengo su rol y pongo los atributos necesarios de todos mis ViewObjects a readonly. Esto funciona bien cuando solo tengo un usuario logueado. Pero si logueo un segundo usuario en la aplicacion, parece que comparten la definicion de los atributos de todos los ViewObjects y por eso, al loguear un segundo usuario tanto en el navegador del primer usuario como en el del segundo veo los mismos ViewObjects a readonly.
Tienes alguna idea del porque? He mirado documentacion sobre el pooling de ApplicationModule, y he hecho pruebas desactivandolo…. pero el problema persiste.
Gracias por tu tiempo!
Coroleu
Enero 3, 2008 a 1:10 pm
En principio hay un pool de AppModules pero no se si la defincion de los VO es compartida.
Prueba de inicializar todo al principio en la clase que te gestione el tema de los permisos y los vo a ReadOnly.
Si encuentras la solucion comentala y asi aprendemos todos!
fetishcode
Enero 5, 2008 a 8:56 am
por lo visto la definición de los VO ,AttributeDef’s, es compartida.
http://forums.oracle.com/forums/thread.jspa?messageID=2274433
fetishcode
Marzo 3, 2008 a 10:21 pm