El editor visual de Cosmos dispone de generadores de código («wizards») que facilitan la programación. Los wizards incluidos son los siguientes:
Wizard de Proyecto: A partir de un repositorio, crea un proyecto nuevo que contiene: Módulos para el mantenimiento de las tablas del repositorio (de todas o de las que haya seleccionado previamente) y módulos de listados de dichas tablas. Este wizard genera un menú como módulo de entrada al proyecto con una persiana por cada tipo de programa y una opción para cada módulo generado.
Wizard de Módulos: A partir de una o más tablas del repositorio creará un módulo que implementa el mantenimiento de las tablas elegidas y/o un listado de las mismas.
Wizard de Forms: A partir de una o más tablas del repositorio creará una clase Form que implemente el mantenimiento de las tablas elegidas.
Wizard de Pages: A partir de una o más tablas del repositorio creará una clase «Page» que implemente el listado de las tablas elegidas.
Personalización de los wizards: Como base de los wizards se pueden hacer módulos de tipo «template» que contendrán los interfaces «Form» y «Page» y módulos de tipo «include» con la definición de las clases abstractas que se utilizarán como esqueleto en la generación. Estos módulos podrán ser editados y modificados por el programador.
Para generar esta aplicación:
1. Ejecute la opción «New» del menu «File». Se muestra el cuadro de diálogo «New», que le permite crear un nuevo proyecto. En este cuadro de diálogo seleccione el elemento «project document» y pulse el botón «Ok».
2. Aparece el cuadro de diálogo «New project». Introduzca
el nombre del proyecto, su «path» y pulse el botón «wizard»
.
3. Seleccione el repositorio para el que desee generar la aplicación.
4. Si lo desea, puede añadir los módulos que desee utilizar en el proyecto como «includes».
5. A continuación, seleccione el tipo de módulos que quiere generar.
Puede generar los siguientes módulos:

Estos templates están definidos en el fichero template.ini. Por defecto se generán todos los tipos de módulos.
6. A continuación, seleccione la conexión (definida el en fichero de configuración «cosmos.ini») que desee utilizar en su aplicación.
7. Automáticamente se genera el proyecto.
A partir de una o más tablas del repositorio creará un módulo que implementa el mantenimiento de las tablas elegidas o un listado de las mismas. Para utilizar el wizard de módulos deberá tener algún repositorio en el proyecto.
Para generar un módulo:
1. Añada un módulo al proyecto. Aparece el cuadro de diálogo «Node
Properties». Introduzca los datos y pulse el botón «wizard»
.
2. Se muestra el cuadro de diálogo «Module Wizard».

Cuadro de diálogo «Module wizard»
En este cuadro de diálogo se muestran los diferentes tipos de módulos que se pueden generar y que se encuentran definidos en el fichero template.ini del subdirectorio «etc» del directorio de instalación de Cosmos.
3. A continuación, seleccione el tipo de módulo que quiere generar. Los tipos de módulos que puede generar son los siguientes:
4. Seleccione el repositorio definido en el proyecto que desee uilizar en el módulo.
5. A continuación, seleccione el «template» que desee utilizar en el módulo. Estos «templates» estan definidos en el fichero template.ini del subdirectorio «etc» del directorio de instalación de Cosmos.
6. Seleccione la(s) tabla(s) y columna(s) del repositorio que desee utilizar en el módulo.
7. En un listado de cabeceras-líneas puede establecer grupos y columnas de ordenación.
8. Establezca la conexión (definida en el fichero de configuración «cosmos.ini») que desee utilizar en el módulo. Automáticamente se genera el módulo.
El editor visual incorpora un wizard de clases para facilitar al usuario la programación de los listados y programas de mantenimiento.
Wizard de Forms: A partir de una o más tablas del repositorio creará una clase «Form» que implemente el mantenimiento de las tablas elegidas.
Wizard de Pages: A partir de una o más tablas del repositorio creará una clase «Page» que implemente el listado de las tablas elegidas.
Para generar una clase con el wizard:
1. Añada o inserte una clase al módulo. Se muestra el cuadro
de diálogo «Class Properties». Introduzca el nombre
de la clase y pulse el botón «wizard»
.
2. Seleccione el tipo de clase que desea generar. Los tipos de clases que puede generar son los siguientes:
Estos tipos son las entradas definidas en el fichero template.ini del subdirectorio «etc» del directorio de instalación de Cosmos.
3. Seleccione el tipo de «template» que desea utilizar para la clase. Estos «templates» son las secciones definidas para cada una de las entradas del fichero template.ini.
4. Seleccione la(s) tabla(s), columna(s).
5. En un listado de cabeceras-líneas puede establecer grupos y columnas de ordenación.
6. Automáticamente se genera la clase.
IMPORTANTE
El módulo debe tener un repositorio asociado.
Como base de los wizards se pueden hacer módulos de tipo «template» que contendrán las clases que se utilizarán como esqueleto en la generación. Estos módulos podrán ser editados y modificados por el programador.
Con Cosmos se entrega un módulo de tipo «template», denominado «template.inc», en el directorio «include», que contiene las clases abstractas que se utilizan como base en la generación. Asimismo, se entrega un módulo «template.smd», en el directorio «template», que contiene la implementación de las clases que utiliza el generador. No obstante, el usuario puede modificar el «include» «templinc.smd» y el «template.smd», o puede hacerse sus propios módulos de tipo «template».
Estos «templates» contienen las clases de tipo «Form» y «Page» que utilizan los generadores y deben estar dadas de alta en el fichero de configuración template.ini. Los módulos que implementen las clases abstractas para los generadores deben encontrarse en el directorio «include», mientras que los módulos que implementen el interfaz de estas clases deben encontrarse en el subdirectorio «template» del directorio de instalación de Cosmos.
IMPORTANTE
En los módulos de tipo «template» que cree el programador,
el control «padre» de la tabla maestra debe tener como identificador «IDMASTER»,
mientras que el de la tabla de líneas debe tener como identificador «IDLINES».
En la implementación de las clases abstractas de tipo «Page» que
quiera incorporar a sus «templates», fíjese en el «template.smd».
Todas las variables precedidas por el símbolo «@» son
sustituidas por el wizard por los valores que haya ido seleccionado en
la generación.