Desde mi punto de vista el interfaz de múltiples documentos o MDI no es adecuado para todos los tipos de aplicaciones. Creo que únicamente tiene sentido aplicarlo cuando todos los documentos van a ser objetos o entidades del mismo tipo, como en un procesador de texto o en una hoja de cálculo. En estos casos puede ser interesante tener abiertos al mismo tiempo multiples documentos para copiar – pegar entre ellos o simplemente para compararlos.
Un aspecto fundamental de los entornos MDI es que todos los objetos responden a las mismas acciones. Si nos fijamos en un procesador de textos, hay una sóla barra de botones y todos los documentos que estamos editando se pueden manejar con las mismas acciones.
el problema
En el software de gestión o doméstico hay que llevar mucho cuidado con la implementación de interfaces MDI. Para entendernos: un albarán no tiene nada que ver con una factura, no son objetos del mismo tipo. Muchos programas de gestión implementan interfaz MDI de manera erronea, añadiendo una barra de botones con acciones propias para cada tipo de documento, con lo que estamos desvituando el modelo MDI. Las propias guias de diseño de aplicaciones Windows de Microsoft dicen que se debe evitar el uso de barras de botones en ventanas secundarias. Desde mi punto de vista, este tipo de software debería implementar MDI únicamente si permiese mostrar unicamente una ventana de documento al mismo tiempo.
mi propuesta de solución
Mi idea de interfaz, el modelo que estoy buscando, consiste en una ventana o dialogo ocupando la zona de cliente de la ventana principal de la aplicación. Partiendo de estos principios he creado en Fivewin un modelo de interfaz a medio camino entre MDI y SDI que he llamado FSDI – full single document interface – y que presenta el siguiente aspecto:
FSDI está basado en un dialogo que ocupa toda la parte cliente de la ventana principal. Las ventajas que presenta este modelo son las sigueintes:
- Interfaz de ventana completa.
- Tratamiento de ficheros como en dialogos.
- Interfaz completo con barra de botones lateral, título de la ventana, rejilla de datos, tabs para cambiar de índices e indicación de los registros de la rejilla de datos.
pero también tiene problemas:
- Al tratarse de un dialogo, la ventana principal queda deshabilitada hasta cerrar el dialogo.
- No presenta botón de menú de control en la ventana secundaria.
- Al llamar a otro dialogo crea una nueva tarea en la barra de tareas.
código fuente de FSDI
Puedes descargar el código fuente de la clase FSDI, que incluye un ejemplo de uso. Este fichero también incluye las modificaciones de la barra de botones y tabs que uso en mis programas.
Me gustaría recibir feedback sobre este modelo de interfaz que propongo y me comprometo a publicar las propuestas que reciba.