Un type de données peut être défini de deux façons :
A l'aide de l'utilitaire Créer une action. Pour plus de détails sur cet utilitaire, reportez-vous au Chapitre 11.
En créant manuellement la définition du type de données.
Pour créer manuellement un type de données, vous devez modifier un fichier de base de données.
Le présent chapitre décrit la procédure de création manuelle.
Vous trouverez une présentation des types de données dans le Chapitre 10.
Pour plus de détails sur les définitions de types de données, reportez-vous à la page de manuel dtddsfile(4).
La création manuelle d'un type de données permet de tirer parti des possibilités de la syntaxe des définitions de types de données.
Vous devez créer un type de données manuellement pour bénéficier des fonctions suivantes :
type de données basé sur le chemin ;
association d'actions (autres que Ouvrir et Imprimer) au type de données ;
multiplicité des critères de noms, modèles et contenus d'un même type de données, par exemple un type de données basé sur les noms de fichiers *.abc ou *.def ;
type de données basé sur des liens.
La définition d'un type de données est constituée de deux définitions de base de données distinctes.
La définition DATA_ATTRIBUTES
.
Cette définition décrit le nom du type de données et l'apparence et le comportement des fichiers de ce type.
Cette définition décrit les critères du type de données. Chaque définition de critères indique la définition DATA_ATTRIBUTES
à laquelle s'appliquent les critères.
Chaque définition DATA_ATTRIBUTES
doit être associée à au moins une définition DATA_CRITERIA
; une définition DATA_ATTRIBUTES
peut être associée à plusieurs définitions DATA_CRITERIA
.
Vous pouvez, par exemple, créer une définition d'attributs pour les fichiers PostScript déterminant l'apparence et le comportement de ces fichiers dans le Gestionnaire de fichiers. Vous pouvez ensuite établir deux critères distincts pour le type de données PostScript, l'un basé sur le nom du fichier et l'autre basé sur son contenu.
Pour plus d'informations, reportez-vous à la section "Définition des critères d'un type de données".
La présente section décrit la procédure de création des fichiers de configuration des types de données.
Les fichiers de configuration contenant des définitions de types de données doivent :
Respecter la convention d'appellation nom.dt.
Figurer dans le chemin de recherche de la base de données. Les chemins de recherche par défaut sont les suivants :
Types de données personnels : RépPersonnel/.dt/types
Types de données système : /etc/dt/appconfig/types/langue
Types de données intégrés : /usr/dt/appconfig/types/langue. Vous ne devez pas utiliser ce répertoire.
Pour plus de détails sur la modification du chemin de recherche de la base de données, reportez-vous à la section "Définition de la valeur d'un chemin de recherche".
Ouvrez un fichier de base de données existant ou créez-en un nouveau.
Pour plus de détails, reportez-vous à la section précédente, "Fichiers de configuration des types de données".
Définissez les attributs du type de données à l'aide de la syntaxe suivante :
DATA_ATTRIBUTES nom_type_données { ICON nom_image DESCRIPTION chaîne zone_attribut zone_attribut ... }
où :
nom_type_données : nom unique affecté à ce type de données.
nom_image : nom de fichier ou chemin d'un fichier d'icône. Utilisez le nom de base du fichier. Par exemple, pour les fichiers d'icônes image.m.pm et image.t.pm, utilisez image.
zone_attribut : zone définissant l'apparence ou le comportement d'un type de données.
chaîne : chaîne de caractères. Son contenu apparaîtra dans l'aide contextuelle du type de données.
Pour plus d'informations, reportez-vous à la section "Exemple de création".
Définissez les critères du type de données à l'aide de la syntaxe suivante :
DATA_CRITERIA nom_critères { DATA_ATTRIBUTES_NAME nom_type_données zone_critères zone_critères ... }
où :
nom_critères : nom unique de cette définition de critères.
nom_type_données : nom utilisé dans la définition du paramètre DATA_ATTRIBUTES
.
zone_critères : zone utilisée pour définir les critères d'affectation d'un fichier à ce type de données.
Pour plus d'informations, reportez-vous à la section "Définition des critères d'un type de données".
Sauvegardez le fichier de base de données.
Créez les icônes de ce type de données.
Pour plus d'informations, reportez-vous à la section "Indication de l'icône associée au type de données".
Au besoin, créez les actions répertoriées dans la zone ACTIONS de la définition des attributs.
Cliquez deux fois sur Recharger actions dans le groupe d'applications Outils_Bureau pour recharger la base de données.
Cet exemple suppose que le système contient l'application xgif, qui permet d'afficher les images GIF. Généralement, ce programme est lancé à l'aide de la commande :
xgif nom_fichier
Nous souhaitons pouvoir afficher les images GIF de différentes façons :
en cliquant deux fois sur un fichier GIF ;
en sélectionnant le fichier de données et en choisissant l'application dans le menu Sélectionné(s).
Ouvrez un nouveau fichier RépPersonnel/.dt/types/GifViewer.dt dans un éditeur de texte.
Entrez les définitions du type de données :
DATA_ATTRIBUTES Gif { DESCRIPTION Fichier image Gif. ICON GifIcon ACTIONS Visualiser } DATA_CRITERIA Critères_Gif { DATA_ATTRIBUTES_NAME Gif NAME_PATTERN *.gif }
Entrez la définition de l'action GifViewer :
ACTION GifViewer { EXEC_STRING xgif %(File)Arg_1"Fichier Gif à visualiser :" WINDOW_TYPE NO_STDIO DESCRIPTION Cliquez deux fois sur un fichier \ ou posez-le pour lancer l'application. }
La définition ne contenant pas de champ ICON, l'action fera appel à l'icône par défaut du système.
Entrez l'action de correspondance suivante pour associer l'action GifViewer à l'action Visualiser figurant dans la définition du type de données. Utilisez la zone ARG_TYPEpour limiter cette action aux fichiers de type Gif.
ACTION Visualiser { ARG_TYPE Gif TYPE MAP MAP_ACTION GifViewer }
Sauvegardez le fichier.
Cliquez deux fois sur Recharger actions dans le groupe d'applications Outils_Bureau pour recharger la base de données.
La définition DATA_ATTRIBUTES
indique l'apparence, le comportement et le nom du type de données ; elle permet de préciser :
l'icône affichée dans le Gestionnaire de fichiers (zone ICON) ;
le contenu du menu Sélectionné(s) et son comportement lors d'un double-clic (zoneACTIONS) ;
Utilisez la zone ICON pour indiquer l'icône utilisée dans le Gestionnaire de fichiers. Si vous ne l'indiquez pas, ce dernier affichera uniquement un libellé.
La valeur de la zone ICON peut être :
Le nom de base du fichier est le nom du fichier contenant l'icône, moins les suffixes de taille (m et t) et de type (bm et pm). Par exemple, si des fichiers s'appellent IcôneJeu.m.pm et IcôneJeu.t.pm, utilisez IcôneJeu.
Si vous utilisez un nom de fichier de base, les fichiers d'icône doivent être copiés dans un répertoire figurant dans le chemin de recherche des icônes.
Icônes personnelles : RépPersonnel/.dt/icons
Icônes publiques : /etc/dt/appconfig/icons/langue
Un chemin absolu pour le fichier d'icône, comprenant le nom complet du fichier.
Utilisez le chemin absolu uniquement si le fichier d'icône ne figure pas dans le chemin de recherche des icônes. Par exemple, si le fichier IcôneJeu.m.pm se trouve dans le répertoire /doc/projects, qui ne figure pas dans le chemin de recherche, la valeur de la zone ICON sera /doc/projects/GameIcon.m.pm.
Le Tableau 13-1 répertorie les tailles d'icônes que vous devez créer et les noms de fichiers correspondants.
Taille en pixels |
Nom bitmap |
Nom pixmap |
---|---|---|
32 x 32 |
nom.m.bm |
nom.m.pm |
16 x 16 |
nom.t.bm |
nom.t.pm |
Les types de données peuvent être associés à des actions de deux façons :
La zone ACTIONS de la définition du paramètre DATA_ATTRIBUTES
répertorie les actions qui apparaîtront dans le menu Sélectionné(s) du Gestionnaire de fichiers. La première action de la liste est l'action par défaut (double-clic).
La zone ARG_TYPE de la définition de l'action permet de limiter celle-ci aux types de données spécifiés.
La définition suivante, par exemple, crée un type de données concernant les fichiers "readme" créés par l'administrateur système à l'aide de la convention d'appellation *.rm.
DATA_ATTRIBUTES FichierSysReadme { ICON FichierSysReadme ACTIONS Ouvrir,Répondre } DATA_CRITERIA CritèresFichierSysReadme { NAME_PATTERN *.rm DATA_ATTRIBUTES_NAME FichierSysReadme }
Une action Répondre est définie ci-dessous pour le fichier. Elle permet d'ouvrir une copie modifiable du fichier dans l'Editeur de texte. Une fois le fichier sauvegardé et l'Editeur de texte fermé, le fichier est transmis à l'administrateur système (adresse sysadmin@utd.
ACTION Répondre { ARG_TYPE FichierSysReadme EXEC_STRING /bin/sh -c 'cp %Arg_1% $HOME/readme.temp;\ chmod +w $HOME/readme.temp; \ dtpad $HOME/readme.temp; \ cat $HOME/readme.temp | \ cat $HOME/readme.temp | \ /usr/bin/mailx sysadmin@utd; \ rm $HOME/readme.temp' WINDOW_TYPE NO_STDIO }
Si le type de données d'un fichier est invisible, ce dernier n'apparaît pas dans le Gestionnaire de fichiers.
Utilisez la zone PROPERTIES de la définition du paramètre DATA_ATTRIBUTES
pour cacher les icônes de ce type :
PROPERTIES invisible
Le Tableau 13-2 montre les zones DATA_ATTRIBUTES
principalement utilisées par les programmeurs système. Elles indiquent le comportement des fichiers lorsque l'utilisateur exécute certaines tâches.
Pour plus de détails, reportez-vous au manuel Common Desktop Environment Programmer's Guide, qui fait partie de la documentation relative à l'environnement de développement.
Tableau 13-2 Zones et descriptions de la définition DATA_ATTRIBUTES
Zone |
Description |
---|---|
Concerne les conteneurs tels que les répertoires. Cette zone indique une action qui doit être exécutée lors du transfert d'un fichier vers un conteneur de ce type de données. |
|
Concerne les conteneurs tels que les répertoires. Cette zone indique une action qui doit être exécutée lors de la copie d'un fichier dans un conteneur de ce type de données. |
|
Cette zone indique une action qui doit être exécutée lors de l'association d'un fichier à un autre fichier de ce type de données. |
|
Indique que les fichiers de ce type de données contiennent du texte pouvant être affiché dans une boîte de message. |
|
Indique le type de support ToolTalk correspondant. |
|
Indique le type MIME correspondant. |
|
Indique le type X400 correspondant. |
La définition DATA_CRITERIA
indique les critères utilisés pour affecter un type d'objet à un fichier ou à un répertoire.
Vous pouvez utiliser les critères figurant dans le Tableau 13-3 pour indiquer les types d'objets.
Tableau 13-3 Critères et descriptions de la définition DATA_CRITERIA
Vous pouvez utiliser plusieurs critères dans un type de données. Cependant, vous ne devez pas utiliser les critères NAME_PATTERN et PATH_PATTERN dans le même type de données.
Utilisez la zone NAME_PATTERN pour indiquer les exigences d'appellation. Les caractères génériques suivants sont acceptés :
? : remplace un caractère quelconque
* : remplace une séquence de caractères quelconque (y compris une chaîne nulle)
[cc...]remplace le(s) caractère(s) (c) figurant entre crochets
[c-c] : remplace les caractères compris entre c et c
La définition suivante crée un type de données basé sur le nom du fichier. Ce nom doit commencer par QS et se terminer par .doc.
DATA_ATTRIBUTES QS_Doc { DESCRIPTION Ce fichier contient un document pour le projet\ QS. ICON Word_Doc ACTIONS Ouvrir } DATA_CRITERIA Critères_Doc_QS { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME Doc_QS }
La définition suivante crée un type de données pour les répertoires portant le nom Demo_n où n correspond à un chiffre compris entre 0 et 9.
DATA_ATTRIBUTES Répertoire_Demo { DESCRIPTION Ceci est un répertoire. Cliquez deux fois dessus pour l'ouvrir. ICON Demo ACTIONS Ouvrir dans la fenêtre active,Ouvrir dans une nouvelle fenêtre } DATA_CRITERIA Critères_répertoire_Demo { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Répertoire_Demo }
Utilisez la zone PATH_PATTERN pour indiquer le chemin. Vous pouvez utiliser les mêmes caractères génériques que pour NAME_PATTERN.
Par exemple, le type de données suivant utilise un critère basé sur le chemin.
DATA_ATTRIBUTES Graphique_projet { DESCRIPTION Fichier graphique pour le projet QS. Cliquez deux fois sur \ l'icône pour voir le graphique. ICON QSgraphics } DATA_CRITERIA Critères_graphique_projet { DATA_ATTRIBUTES_NAME Graphique_projet PATH_PATTERN */projects/QS/graphics/* }
Pour créer un type de données basé à la fois sur le nom et sur l'emplacement, ajoutez le nom à la valeur PATH_PATTERN. Vous ne pouvez pas utiliser à la fois NAME_PATTERN et PATH_PATTERN dans la même définition de critères.
Le type de données Fichiers_source_QS défini ci-dessous s'applique à tous les fichiers appn.c, où n est un chiffre compris entre 1 et 9, situés dans des sous-répertoires de */projects/QS.
DATA_ATTRIBUTES Fichiers_source_QS { ... } DATA_CRITERIA Critères_fichiers_source_QS { PATH_PATTERN */projects/QS/*/app[1-9].c DATA_ATTRIBUTES_NAME Fichiers_source_QS }
Le type de données suivant s'applique à tous les fichiers du répertoire /doc/project1 dont le nom est chnn.xxx où n est un chiffre compris entre 0 et 9 et xxx est une extension à trois caractères.
DATA_ATTRIBUTES Fichiers_chapitre { DESCRIPTION Chapitre du projet. ICON chapter ACTIONS Editer,Imprimer } DATA_CRITERIA Critères_chapitre { PATH_PATTERN /doc/project1/ch[0-9][0-9].??? DATA_ATTRIBUTES_NAME Fichiers_chapitre }
Utilisez la zone MODE pour indiquer les autorisations requises.
Les critères de mode sont généralement associés à un type de données basé sur le nom, l'emplacement ou le contenu. Ils permettent de limiter un type de données à un fichier ou à un répertoire, ou d'indiquer l'autorisation de lecture, d'écriture ou d'exécution requise.
La zone MODE peut comporter des opérateurs logiques (Tableau 13-4) et des caractères (Tableau 13-5).
Tableau 13-4 Opérateurs logiques et descriptions de la zone MODE
Opérateur |
Description |
---|---|
! | |
& | |
| |
Tableau 13-5 Caractères et descriptions de la zone MODE
Caractère |
Description |
---|---|
Type de données s'appliquant uniquement aux fichiers. |
|
Type de données s'appliquant uniquement aux répertoires. |
|
r |
Fichier lisible par n'importe quel utilisateur. |
Fichier accessible en écriture par n'importe quel utilisateur. |
|
Fichier exécutable par n'importe quel utilisateur. |
|
Le fichier est un lien. |
Par défaut, le mode n'est pas pris en compte.
Les zones de mode ci-dessous limitent le type de données de la manière décrite :
f&!w : fichiers en lecture seule
!w : fichiers et répertoires en lecture seule
f&x : fichiers exécutables
f&r&x :fichiers accessibles en lecture et exécutables
x|!wfichiers exécutables ou accessibles en lecture seule
La définition suivante crée un type de données pour les fichiers non exécutables accessibles en lecture seule dont le nom respecte la convention d'appellation *.doc. Cette définition suppose qu'une action Visualiser a été définie pour ce type de données.
DATA_ATTRIBUTES Document_lecture_seule { ICON read_only DESCRIPTION Ce document n'est pas modifiable. Cliquez deux fois \ pour ouvrir une copie accessible en lecture seule \ dans l'éditeur. ACTIONS Visualiser } DATA_CRITERIA Critères_document_lecture_seule { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME Document_lecture_seule }
Utilisez la zone CONTENT pour indiquer un type de données basé sur le contenu du fichier. Ce type de données peut être utilisé en combinaison avec des types de données basés sur le nom ou sur l'emplacement.
Le type peut dépendre d'une chaîne ou de chiffres contenus dans le fichier. La numérotation des octets du fichier commence à 0.
Pour des chiffres, utilisez la syntaxe :
CONTENT octet_début byte numéro CONTENT octet_début short numéro CONTENT octet_début long numéro
Pour le contenu d'un répertoire, utilisez la syntaxe :
CONTENT 0 filename "nom_fichier"
Utilisez la notation C standard pour les numérotations octale (valeur précédée de o) et hexadécimale (valeur précédée de oX).
L'utilisation d'un type de données basé sur le contenu peut provoquer un ralentissement des performances du système. Utilisez de préférence un type basé sur le nom ou sur l'emplacement.
Par exemple, le type de données suivant, Wingz_modifiable, s'applique à tous les fichiers accessibles en écriture et commençant par la chaîne WNGZ.
DATA_ATTRIBUTES Wingz_modifiable { ... } DATA_CRITERIA Critères_Wingz_modifiable { CONTENT 0 string WNGZ MODE w&!d DATA_ATTRIBUTES_NAME Wingz_modifiable }
Vous pouvez créer un type de données à l'aide de plusieurs critères indépendants autrement dit, le fichier est affecté à un type de données s'il répond à au moins un des critères.
Créez la définition DATA_ATTRIBUTES
pour le type de données.
Créez une définition DATA_CRITERIA
pour chaque critère.
Utilisez la zone DATA_ATTRIBUTES_NAME pour associer chaque critère à la même définition DATA_ATTRIBUTES
.
Par exemple, les définitions suivantes permettent de créer le type de données Mif. Le type est basé sur le nom et le contenu.
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Ouvrir,Imprimer } DATA_CRITERIA Critères_Nom_Mif { DATA_ATTRIBUTES_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Critères_Contenu_Mif { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }
Le chemin de recherche des types de données comporte des emplacements dépendant la langue utilisée. Le bureau utilise la valeur de la variable LANG pour déterminer les emplacements des définitions des types de données.
Les définitions de ces types de données doivent figurer dans les répertoires correspondant à la langue, dans le chemin de recherche des actions.
Les chemins de recherche par défaut sont les suivants :
Actions personnelles : RépPersonnel/.dt/types.
Actions système : /etc/dt/appconfig/types/langue.
actions intégrées : /usr/dt/appconfig/types/langue.