Entierra con el hacha las pantallas de edición

Cuando conocí Flickr, me gustó. Pero cuando me convertí en usuario me enamoró por lo terriblemente bien hecho que está el interfaz, muy especialmente un detalle: si algo en la pantalla es editable por mí, lo puedo editar directamente. Por ejemplo, si doy de alta una foto, cuando estoy en su pantalla de detalle, si pulso en el título, el texto se convierte -elegantemente- en un campo de entrada, y puedo editar el valor, que se almacena vía Ajax (como el componente inline de Dojo).

Esa comodidad viene de romper con un hábito habitual: separar las pantallas de ver y de editar. ¿Para qué? Yo, usuario de la aplicación, no quiero tener que pasar a "modo edición" cada vez que quiera cambiar un dato. Si estoy viendo algo que puedo editar, debo poderlo editar, sin indicarle a la aplicación "¡oye, que voy a editar!". El componente de edición inline a mí me encanta pero para muchos usuarios puede ser confuso, por lo que, en una aplicación web, este principio se traduce a que si un dato no es editable debe aparecer como texto (¡no en un campo deshabilitado!), y si es editable, en un campo.

Esto en muchos entornos se traduce en jsps llenas de ifs, o, con suerte, de c:ifs, lo cual ni es productivo, ni mantenible, ni legible. Sin embargo, si puedes utilizar JSF y Tomahawk, no debes dejar pasar el atributo displayValueOnly de (casi) todos los campos de entrada. Permite, mediante una expresión JSF, decidir si algo se muestra como texto o como campo. Mejor, imposible. Y, para gestionar también el permiso de visibilidad sobre una propiedad, tienes el rendered. Con estos dos atributos manejas los tres permisos elementales (visibilidad, lectura y escritura) de la forma mínima.

Se acabó tener que programar varias pantallas en función de permisos y modos. Con una única pantalla podemos mostrar sólo lo que un usuario pueda ver (¡a nivel de propiedad!) y editar sólo lo que pueda editar.

Posted by Juan Ignacio Sánchez Lara 20:27  

1 Comment:

  1. @ntoneo said...
    Me parece fantástico lo claro que lo explicas de forma que da la impresión que nos abres los ojos para decirnos que tenemos ahí ese potencial.
    Gracias.

Post a Comment