Next: 3.6 Construcción de la
Up: ICEeditor según AÏDA
Previous: 3.4.6 Variables de iconos
Como ya se ha dicho anteriormente, ICEeditor es una aplicación
compleja que está formada por un conjunto de subaplicaciones, la mayor
parte de ellas objetos AÏDA estándar con el comportamiento
redefinido, esto es, se han utilizado métodos propios para
establecer las acciones que se realizan cuando tiene lugar un evento
asociado a la subaplicación.
La jerarquía de componentes desempeña un papel fundamental
en el funcionamiento de la aplicación, puesto que establece un modo
fácil de comunicación entre los distintos componentes. Así,
por ejemplo, es posible llamar a un método de la aplicación
principal ICEeditor cuando el usuario dispara la acción asociada a
la pulsación de un botón. El mecanismo utilizado por LE-LISP para
la gestión de componentes esconde gran parte de estos problemas de
interacción de la aplicación y facilita el problema siempre latente
de mantenimiento del software, puesto que es posible añadir un
nuevo componente sin afectar el normal funcionamiento de los demás.
En ICEeditor se ha considerado conveniente definir las siguientes subaplicaciones
componentes
:
- ICEEDITOR es el componente asociado a la aplicación
ICEeditor. La creación de este componente es necesaria para permitir
a las subaplicaciones acceder a la instancia de la aplicación
ICEeditor a la que pertenecen. También posibilita el acceso a
los métodos definidos para ICEeditor desde las acciones
asociadas a las subaplicaciones.
- TEXTEDITOR, el componente que se refiere el editor de
textos incorporado en ICEeditor.
- FILENAMEEDIT, el editor de cadenas de caracteres que permite al usuario
cambiar interactivamente el nombre del fichero que está
editando.
- MAINMENU se corresponde con el menú principal de la
aplicación.
- SCROLLER se refiere al desplazador vertical encargado de
desplazar las líneas de texto del editor siguiendo los
movimientos del cursor.
- SCROLLBAR se refiere a la barra de desplazamiento
horizontal asociada al editor de textos.
- Para cada uno de los botones se ha definido un componente
individual:
- QUITBUTTON para el botón asociado a la acción de
salir de ICEeditor.
- PARSERBUTTON para el botón de parsing
incremental.
- PARSERALLBUTTON para el botón de reanálisis completo.
- LOADBUTTON para el boton de carga de ficheros.
- SAVEBUTTON para el botón de escritura de
ficheros.
- INSERTBUTTON para el botón que pone al editor en
modo inserción.
- DELETEBUTTON para el botón de la acción de
borrado de componentes léxicos.
- MODIFYBUTTON para el botón de modificación.
- NOACTIONBUTTON para el botón que inhibe las
operaciones de edición sobre los componentes léxicos en el
editor.
- INFOBUTTON para el botón que permite al usuario
obtener la información de análisis almacenada para
cada componente léxico.
- HELPBUTTON para el botón de acceso a la ayuda.
Para incorporar cada uno de los elementos anteriores a la jerarquía
de componentes se utiliza la función ADD-COMPONENT. Por
ejemplo, en el caso del botón quit:
(add-component ICEeditor 'QUITBUTTON quitbutton)
Con ello se consigue establecer que quitbutton, una variable
creada previamente con su valor acotado dentro del ámbito de un
let, se incorpore a la jerarquía de componentes de la
variable ICEeditor de tipo {ICEeditor} que también
había sido creada dentro del ámbito del mismo let.
Next: 3.6 Construcción de la
Up: ICEeditor según AÏDA
Previous: 3.4.6 Variables de iconos
Miguel A. Alonso Pardo
Thu Nov 20 16:47:01 CET 1997