Existen dos procedimientos para crear una definición de tipo de datos:
Utilizar la herramienta Crear acción. El uso de Crear acción se describe en Capítulo 11.
Crear la definición de tipos de datos manualmente.
Para crear manualmente un tipo de datos es necesario editar un archivo de base de datos.
Este capítulo describe cómo crear definiciones de tipos de datos manualmente.
Componentes de una definición de tipo de datos: criterios y atributos
Ejemplo de creación de una acción y un tipo de datos personales
Para una introducción a los tipos de datos, véase Capítulo 10.
Para obtener información de referencia acerca de la definición de tipos de datos, consulte la página de comando man dtddsfile(4).
La creación manual de un tipo de datos permite utilizar todas las capacidades incorporadas en la sintaxis de las definiciones de tipos de datos.
Deberá crear un tipo de datos manualmente si quiere utilizar las siguientes características de los tipos de datos:
Asignación de tipos de datos basada en la ubicación
Capacidad para especificar acciones asociadas con los tipos de datos que no sean Open y Print
Criterios de nombres, patrones o contenidos múltiples para el mismo tipo de datos: por ejemplo, un tipo de datos basado en los archivos con nombre *.abc o *.def
Asignación de tipos de datos basada en el enlace
Una definición de tipo de datos consta de dos definiciones distintas en la base de datos:
La definición de DATA_ATTRIBUTES
.
La definición de DATA_ATTRIBUTES
describe el nombre del tipo de datos y el aspecto y comportamiento
de los archivos de este tipo.
La definición de DATA_CRITERIA
.
La definición de DATA_CRITERIA
describe los criterios de asignación de tipo. Cada definición
de criterios especifica la definición de DATA_ATTRIBUTES
a la cual se aplican los criterios.
Debe haber como mínimo una definición de DATA_CRITERIA
para cada definición de DATA_ATTRIBUTES
; ésta
puede tener varias definiciones de DATA_CRITERIA
asociadas.
Por ejemplo, puede crear una definición de atributos para archivos PostScript que describa qué aspecto tienen y cómo se comportan éstos en el Gestor de archivos. Luego puede crear dos criterios diferentes para el tipo de datos PostScript, uno de ellos basado en el nombre de archivo y otro en el contenido del archivo.
Para obtener más información, véase Definición de los criterios de datos para un tipo de datos.
En esta sección se describe cómo crear un archivo de configuración de tipo de datos.
Los requisitos de los archivos de configuración que contienen definiciones de tipos de datos son:
Los archivos deben utilizar el convenio de nombre nombre.dt
Los archivos deben estar situados en la ruta de búsqueda de bases de datos. La ruta de búsqueda predeterminada es:
Tipos de datos personales: DirectorioInicio/.dt/types
Tipos de datos accesibles en el sistema:/etc/dt/appconfig/types/idioma
Tipos de datos incorporados: /usr/dt/appconfig/types/idioma. No se debe utilizar este directorio.
Para obtener información sobre cómo modificar la ruta de búsqueda de bases de datos, véase Establecimiento del valor de una ruta de búsqueda.
Abra un archivo de base de datos existente o cree uno nuevo.
Para obtener más información, véase la sección anterior, Archivos de configuración para tipos de datos.
Defina los atributos de los datos para el tipo de datos, mediante la sintaxis:
DATA_ATTRIBUTES nombre_tipo_datos { ICON nombre_imagen DESCRIPTION cadena campo_atributo campo_atributo … }
donde:
nombre_tipo_datos: nombre exclusivo asignado a este tipo de datos.
nombre_imagen: nombre de archivo o ruta de acceso de un archivo de icono. Utilice el nombre base del archivo. Por ejemplo, para los archivos de icono miimagen.m.pm y miimagen.t.pm, utilice miimagen.
campo_atributo: campo que define el aspecto y el comportamiento del tipo de datos.
cadena: cadena de caracteres. El contenido de ésta será la ayuda sobre el tema para el tipo de datos.
Véase Ejemplo de creación de una acción y un tipo de datos personales.
Defina los criterios de datos para el tipo de datos mediante la sintaxis:
DATA_CRITERIA nombre_criterio { DATA_ATTRIBUTES_NAME nombre_tipo_datos campo_criterio campo_criterio … }
donde:
nombre_criterio: nombre exclusivo para esta definición de los criterios
nombre_tipo_datos: nombre utilizado en la
definición de DATA_ATTRIBUTES
campo_criterio: campo utilizado para definir los criterios según los cuales se asigna a un archivo este tipo de datos
Véase Definición de los criterios de datos para un tipo de datos.
Guarde el archivo de base de datos.
Cree los iconos para el tipo de datos.
Para obtener más información, véase Especificación de la imagen de icono utilizada para un tipo de datos.
Si es necesario, cree las acciones listadas en el campo ACTIONS de la definición de atributos.
Haga doble clic en Recargar acciones en el grupo de aplicaciones Herramientas_Escritorio para recargar la base de datos.
Supongamos que el sistema contiene una aplicación llamada xgif, que muestra imágenes GIF. Normalmente, el programa se ejecuta escribiendo:
xgif nombre_archivo
Usted quiere tener la posibilidad de mostrar imágenes GIF de diversas maneras:
Haciendo doble clic un archivo de datos GIF
Seleccionando el archivo de datos y eligiendo la aplicación del menú Seleccionada
Abra un archivo nuevo DirectorioInicio/.dt/types/GifViewer.dt para editarlo.
Escriba las definiciones del tipo de datos:
DATA_ATTRIBUTES Gif { DESCRIPTION Archivo de imagen Gif. ICON GifIcon ACTIONS View } DATA_CRITERIA Gif_Criteria { DATA_ATTRIBUTES_NAME Gif NAME_PATTERN *.gif }
Escriba la definición de la acción GifViewer:
ACTION GifViewer { EXEC_STRING xgif %(File)Arg_1"Archivo Gif a visualizar:" WINDOW_TYPE NO_STDIO DESCRIPTION Haga doble clic en o suelte un archivo para \ iniciar el Visualizador de Gif. }
Como la definición no incluye un campo ICON, la acción utilizará el icono predeterminado del sistema.
Escriba la siguiente acción map para conectar la acción GifViewer con la acción View que aparece en la definición del tipo de datos. Utilice el campo ARG_TYPE para restringir la acción de visualizar a archivos de tipo Gif.
ACTION View { ARG_TYPE Gif TYPE MAP MAP_ACTION GifViewer }
Guarde el archivo.
Haga doble clic en Recargar acciones en el grupo de aplicaciones Herramientas_Escritorio para volver a leer la base de datos.
La definición de DATA_ATTRIBUTES
establece el aspecto y el comportamiento del tipo de datos.
Determina el nombre del tipo de datos y ofrece la capacidad de especificar:
El icono de Gestor de archivos (campo ICON)
El comportamiento del doble clic y el contenido del menú Seleccionada (campo ACTIONS)
Utilice el campo ICON para especificar el icono utilizado en el Gestor de archivos. Si no especifica ninguna imagen de icono, el Gestor de archivos mostrará únicamente una etiqueta.
El valor del campo ICON puede ser:
El nombre de archivo base es el nombre del archivo que contiene la imagen del icono, menos los sufijos de tamaño (m y t) y tipo de imagen (bm y pm). Por ejemplo, si los archivos se llaman GameIcon.m.pm y GameIcon.t.pm, utilice GameIcon.
Si utiliza el nombre de archivo base, los archivos de iconos deben encontrarse en la ruta de búsqueda de iconos:
Iconos personales: DirectorioInicio/.dt/icons
Iconos accesibles en el sistema: /etc/dt/appconfig/icons/idioma
Una ruta absoluta al archivo de icono, incluido el nombre de archivo completo.
Deberá utilizar la ruta absoluta sólo si el icono no se encuentra en la ruta de búsqueda de iconos. Por ejemplo, si se coloca el archivo de icono IconoJuegos.m.pm en el directorio /doc/projects, que no está en la ruta de búsqueda de iconos, el valor del campo ICON sería /doc/projects/IconoJuegos.m.pm.
Tabla 13–1 La muestra una lista de los tamaños de icono que debe crear y los nombres de archivo correspondientes.
Tamaño en píxels |
Nombre del mapa de bits |
Nombre del mapa de píxels |
---|---|---|
32 por 32 |
nombre.m.bm |
nombre.m.pm |
16 por 16 |
nombre.t.bm |
nombre.t.pm |
Existen dos procedimientos para asociar tipos de datos con acciones:
El campo ACTIONS de la definición
de DATA_ATTRIBUTES
muestra una
lista de las acciones que aparecerán en el menú Seleccionada
del Gestor de archivos. La primera acción de la lista es la acción
predeterminada (doble clic).
Las acciones pueden restringirse a tipos de datos específicos mediante el campo ARG_TYPE de la definición de la acción.
Por ejemplo, la siguiente definición de tipo de datos crea un tipo de datos para archivos “readme” especiales creados por el administrador del sistema, que utilizan la nomenclatura *.rm.
DATA_ATTRIBUTES SysReadmeFile { ICON SysReadMe ACTIONS Open,Respond } DATA_CRITERIA SysReadmeFileCriteria { NAME_PATTERN *.rm DATA_ATTRIBUTES_NAME SysReadmeFile }
A continuación se define una acción especial Respond para el archivo. Esta acción abre en el Editor de textos una copia del archivo que se puede escribir. Al guardar el archivo y salir del Editor de textos, el archivo se envía por correo electrónico al administrador del sistema (dirección de correo sysadmin@utd).
ACTION Respond { ARG_TYPE SysReadmeFile EXEC_STRING /bin/sh -c 'cp %Arg_1% $HOME/readme.temp;\ chmod +w $HOME/readme.temp; \ dtpad $HOME/readme.temp; \ cat $HOME/readme.temp | \ /usr/bin/mailx sysadmin@utd; \ rm $HOME/readme.temp' WINDOW_TYPE NO_STDIO }
Si un archivo pertenece a un tipo de datos invisible, no aparecerá nunca en el Gestor de archivos.
Utilice el campo PROPERTIES de la definición
de DATA_ATTRIBUTES
para especificar
si los objetos de este tipo deben ocultarse.
PROPERTIES invisible
Tabla 13–2 La
muestra los campos de DATA_ATTRIBUTES
que utilizan principalmente los programadores de aplicaciones, en los cuales
se especifican cómo se comportan los archivos cuando el usuario realiza
diversas actividades de escritorio.
Para obtener más información, consulte la Common Desktop Environment Programmer's Guide, que forma parte de la documentación del entorno de programador.
Tabla 13–2 Campos y descripciones de DATA_ATTRIBUTES
Campo |
Descripción |
---|---|
Para contenedores, como, por ejemplo, directorios. Especifica una acción que se debe ejecutar al mover un archivo a un contenedor de este tipo de datos. |
|
Para contenedores, como, por ejemplo, directorios. Especifica una acción que se debe ejecutar al copiar un archivo a un contenedor de este tipo de datos. |
|
Especifica una acción que se debe ejecutar cuando se enlaza un archivo con otro de este tipo de datos. |
|
Especifica que los archivos de este tipo de datos contienen texto que puede mostrarse en un cuadro de texto. |
|
Especifica el tipo de soporte de ToolTalk correspondiente. |
|
Especifica el tipo MIME correspondiente. |
|
Especifica el tipo X400 correspondiente. |
La definición de DATA_CRITERIA
establece los criterios utilizados para asignar un tipo de objeto a un archivo
o directorio.
Para los tipos de objeto se pueden utilizar los criterios mostrados en la Tabla 13–3.
Tabla 13–3 Criterios y descripciones de DATA_CRITERIA
Se puede utilizar más de un criterio para un tipo de datos. Sin embargo, no debe utilizar los criterios NAME_PATTERN y PATH_PATTERN en el mismo tipo de datos.
Utilice el campo NAME_PATTERN para especificar los requisitos de nombre. El valor del campo puede incluir los siguientes caracteres comodín:
?: coincide con cualquier carácter único
*: coincide con cualquier secuencia de caracteres (incluso una cadena nula)
[cc…]: coincide con cualquiera de los caracteres (c) entre corchetes
[c–c]: coincide con cualquiera de los caracteres del rango c a c
La siguiente definición de tipo de datos crea un tipo de datos basado en el nombre de archivo. Éste debe comenzar con QS y acabar con .doc.
DATA_ATTRIBUTES QS_Doc { DESCRIPTION Este archivo contiene un documento para \ el proyecto QS. ICON Word_Doc ACTIONS Open } DATA_CRITERIA QS_Doc_Criteria { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME QS_Doc }
La siguiente definición crea un tipo de datos para directorios llamados Demo_n, donde n es un número de 0 a 9.
DATA_ATTRIBUTES Demo_directory { DESCRIPTION Es un directorio. Haga doble clic para abrirlo. ICON Demo ACTIONS OpenInPlace,OpenNewView } DATA_CRITERIA Demo_directory_criteria { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Demo_directory }
Utilice el campo PATH_PATTERN para especificar la ruta. Puede usar los mismos caracteres comodín que en NAME_PATTERN.
Por ejemplo, el siguiente tipo de datos utiliza un criterio basado en la ruta.
DATA_ATTRIBUTES Project_Graphics { DESCRIPTION Archivo de gráficos para el proyecto QS. Haga doble clic en \ el icono para ver el gráfico. ICON QSgraphics } DATA_CRITERIA Project_Graphics_Criteria { DATA_ATTRIBUTES_NAME Project_Graphics PATH_PATTERN */projects/QS/graphics/* }
Para crear un tipo de datos basado en el nombre y la ubicación, incluya éste en el valor de PATH_PATTERN. No se puede utilizar NAME_PATTERN y PATH_PATTERN en la misma definición de criterios.
El tipo de datos Archivos_Fuente_QS definido a continuación se aplica a todos los archivos llamados appn.c, donde n= 1 a 9, ubicados en subdirectorios de */projects/QS.
DATA_ATTRIBUTES Archivos_Fuente_QS { … } DATA_CRITERIA QS_Source_Files_Criteria { PATH_PATTERN */projects/QS/*/app[1-9].c DATA_ATTRIBUTES_NAME Archivos_Fuente_QS }
El siguiente tipo de datos se aplica a todos los archivos del directorio /doc/project1 llamados chnn.xxx donde n es de 0 a 9, y xxx es cualquier sufijo del nombre de archivo de tres caracteres.
DATA_ATTRIBUTES Archivos_del_capítulo { DESCRIPTION Archivo de capítulo para el documento del proyecto. ICON chapter ACTIONS Edit,Print } DATA_CRITERIA Chapter_Criteria { PATH_PATTERN /doc/project1/ch[0-9][0-9].??? DATA_ATTRIBUTES_NAME Archivos_del_capítulo }
Utilice el campo MODE para especificar los permisos requeridos.
Los criterios de modalidad se suelen utilizar en combinación con criterios de nombre, ubicación o contenido. Permiten limitar un tipo de datos a un archivo o directorio, o especificar los permisos de lectura, escritura y ejecución requeridos.
El campo MODE puede incluir operadores lógicos (Tabla 13–4) y caracteres (Tabla 13–5).
Tabla 13–4 Operadores lógicos en el campo MODE y descripciones
Operador |
Descripción |
---|---|
! | |
& | |
| |
Tabla 13–5 Caracteres en el campo MODE y descripciones
Carácter |
Descripción |
---|---|
El tipo de datos sólo es aplicable a archivos |
|
El tipo de datos sólo es aplicable a directorios |
|
r |
Cualquier usuario puede leer el archivo |
Cualquier usuario puede escribir en el archivo |
|
Cualquier usuario puede ejecutar el archivo |
|
El archivo es un enlace |
El valor predeterminado para una modalidad particular es que la modalidad no es relevante.
Los siguientes valores del campo MODE restringen el tipo de datos según se describe a continuación:
f&!w: archivos de sólo lectura
!w: archivos y directorios de sólo lectura
f&x: archivos ejecutables
f&r&x: archivos ejecutables en los que se puede escribir
x|!w: archivos ejecutables de sólo lectura
La siguiente definición de tipo de datos crea un tipo de datos para archivos de sólo lectura no ejecutables, cuyos nombres de archivo siguen el convenio *.doc. Se supone que se ha definido una acción View para el tipo de datos.
DATA_ATTRIBUTES ReadOnlyDocument { ICON read_only DESCRIPTION Este documento no es grabable. Si \ hace doble clic se ejecutará el \ editor con una copia de \ sólo lectura del archivo. ACTIONS View } DATA_CRITERIA ReadOnlyDocument_Criteria { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME ReadOnlyDocument }
Utilice el campo CONTENT para especificar que el tipo de datos asignado se basará en el contenido del archivo. La asignación del tipo de datos según el contenido se puede utilizar en combinación con criterios de nombre o ubicación.
La asignación del tipo de datos puede basarse tanto en el contenido numérico como en el de cadenas de caracteres de los archivos. El primer byte de un archivo se numera como 0.
Para utilizar el contenido de cadenas de caracteres de un archivo, utilice la sintaxis siguiente:
CONTENT byte_inicial string cadena
Para utilizar el contenido numérico de un archivo, utilice la sintaxis siguiente:
CONTENT byte_inicial byte número CONTENT byte_inicial short número CONTENT byte_inicial long número
Para utilizar el contenido de un directorio, utilice la sintaxis:
CONTENT 0 filename "nombre_archivo"
Utilice la notación estándar de C para los números en octal (o inicial) y hexadecimal (oX inicial).
El uso de tipos de datos basados en contenido ralentizará el rendimiento del sistema. Siempre que sea posible, utilice en su lugar tipos de datos basados en el nombre o en la ubicación.
Por ejemplo, el tipo de datos siguiente, Writable_Wingz, se aplica a todos los archivos con permiso de escritura que contengan la cadena WNGZ al principio del archivo.
DATA_ATTRIBUTES Writable_Wingz { … } DATA_CRITERIA Writable_Wingz_Criteria { CONTENT 0 string WNGZ MODE w&!d DATA_ATTRIBUTES_NAME Writable_Wingz }
Se puede crear un tipo de datos con varios criterios independientes, es decir, el archivo se asigna al tipo de datos si cumple uno de los criterios (o ambos).
Cree la definición de DATA_ATTRIBUTES
para el tipo de datos.
Cree una definición de DATA_CRITERIA
para cada criterio.
Utilice el campo DATA_ATTRIBUTES_NAME para
conectar los criterios con la misma definición de DATA_ATTRIBUTES
.
Por ejemplo, las siguientes definiciones crean el tipo de datos Mif. Es una asignación tipo basada en nombre y contenido.
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Open,Print } DATA_CRITERIA Mif_Name_Criteria { DATA_ATTRIBUTES_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Mif_Content_Criteria { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }
La ruta de búsqueda de tipos de datos incluye ubicaciones que dependen del idioma. El escritorio utiliza el valor de LANG para determinar las ubicaciones donde se deben buscar las definiciones de tipos de datos.
Las definiciones de tipos de datos de entorno nacional deben ubicarse en los directorios dependientes del idioma apropiados de la ruta de búsqueda de acciones.
La ruta de búsqueda predeterminada es:
Acciones personales: DirectorioInicio/.dt/types
Acciones accesibles en el sistema: /etc/dt/appconfig/types/idioma
Acciones incorporadas: /usr/dt/appconfig/types/idioma