Per creare la definizione di un tipo di dati si può procedere in due modi:
Usare lo strumento Crea azione. Per informazioni a riguardo vedere il Capitolo 11.
Creare manualmente la definizione del tipo di dati.
La procedura manuale richiede la modifica di un file del database.
Questo capitolo descrive la procedura da seguire per creare manualmente le definizioni dei tipi di dati.
Per informazioni introduttive sui tipi di dati, vedere il Capitolo 10.
Per informazioni di riferimento sulle definizioni dei tipi di dati, vedere la pagina man dtddsfile(4).
Creando manualmente un tipo di dati è possibile usare tutte le funzionalità offerte dalla sintassi delle definizioni.
In particolare, un tipo di dati deve essere creato manualmente se si desidera utilizzare le seguenti caratteristiche:
L'identificazione del tipo di dati in base alla posizione (percorso)
La possibilità di associare al tipo di dati un'azione diversa da Apri e Stampa
L'uso di nomi, schemi o contenuti diversi per lo stesso tipo di dati: ad esempio, uno stesso tipo di dati può essere associato ai nomi *.abc o *.def
L'identificazione del tipo di dati in base al collegamento
La definizione di un tipo di dati consiste di due sezioni separate del database:
La definizione degli attributi (DATA_ATTRIBUTES
).
La sezione DATA_ATTRIBUTES
definisce il nome, l'aspetto e il comportamento dei file associati al tipo
di dati.
La definizione dei criteri (DATA_CRITERIA
).
La sezione DATA_CRITERIA
definisce i criteri per l'identificazione del tipo di dati. Ogni criterio
specifica gli attributi (DATA_ATTRIBUTES
)
a cui si riferisce.
Per ogni attributo specificato in DATA_ATTRIBUTES
deve essere definito almeno un criterio nella sezione DATA_CRITERIA
; possono essere definiti anche
più criteri per uno stesso attributo.
Ad esempio, supponendo di avere definito alcuni attributi per i file PostScript che descrivono l'aspetto e il comportamento di questi file nella Gestione di file, si potranno creare due criteri separati per il tipo di dati PostScript: uno basato sul nome del file e l'altro sul contenuto.
Per maggiori informazioni, vedere Definizione dei criteri per un tipo di dati.
Questa sezione descrive come creare un file di configurazione per un tipo di dati.
I file di configurazione che contengono le definizioni per i tipi di dati devono rispondere alle seguenti caratteristiche:
Il nome del file deve avere la forma nome.dt
I file devono trovarsi nel percorso di ricerca del database. Il percorso di ricerca predefinito comprende le seguenti directory:
Tipi di dati personali: DirectoryIniziale/.dt/types
Tipi di dati di sistema: /etc/dt/appconfig/types/lingua
Tipi di dati predefiniti: /usr/dt/appconfig/types/lingua. Questa directory non dovrebbe essere modificata.
Per informazioni su come modificare il percorso di ricerca dei database, vedere Impostazione del valore di un percorso di ricerca.
Aprire un file del database o crearne uno nuovo.
Per maggiori informazioni, vedere la sezione File di configurazione per i tipi di dati.
Definire gli attributi per il tipo di dati usando la sintassi:
DATA_ATTRIBUTES nome_tipo_di_dati { ICON nome_immagine DESCRIPTION stringa campo_attributo campo_attributo … }
dove:
nome_tipo_di_dati: è un nome unico assegnato a questo tipo di dati.
nome_immagine: è il percorso o il nome di un file contenente un'icona. Usare il nome base del file. Ad esempio, nel caso di due file di nome immagine.m.pm e immagine.t.pm.t.pm, usare il nome immagine.
campo_attributo: è un campo che definisce l'aspetto o il comportamento del tipo di dati.
stringa: è una stringa di caratteri da usare come testo della guida per il tipo di dati.
Vedere Esempio di creazione di un'azione e di un tipo di dati personale.
Definire i criteri per il tipo di dati usando la sintassi:
DATA_CRITERIA nome_criterio { DATA_ATTRIBUTES_NAME nome_tipo_di_dati campo_criterio campo_criterio … }
dove:
nome_criterio: è un nome unico usato per la definizione di questo criterio
nome_tipo_di_dati: è il nome usato
nella sezione DATA_ATTRIBUTES
campo_criterio: è il campo che definisce i criteri per associare un file a questo tipo di dati
Salvare il file del database.
Creare le icone per il tipo di dati.
Per maggiori informazioni, vedere Scelta dell'icona per un tipo di dati.
Se necessario, creare le azioni specificate nel campo ACTIONS della definizione degli attributi.
Fare doppio clic su “Ricarica azioni” nel gruppo Strumenti_desktop per rileggere il database.
Si supponga che il sistema contenga un'applicazione di nome xgif per la visualizzazione delle immagini GIF. Normalmente, il programma viene avviato con il comando:
xgif nomefile
Si desidera avere la possibilità di visualizzare le immagini GIF in questi modi:
Facendo doppio clic su un file di dati GIF
Selezionando il file di dati e scegliendo l'applicazione dal menu Selezione
Creare con un editor il file DirectoryIniziale/.dt/types/VisualizzaGif.dt.
Inserire le seguenti definizioni per il tipo di dati:
DATA_ATTRIBUTES Gif { DESCRIPTION File grafico Gif. ICON IconaGif ACTIONS Visualizza } DATA_CRITERIA Criteri_Gif { DATA_ATTRIBUTES_NAME Gif NAME_PATTERN *.gif }
Inserire la definizione per l'azione VisualizzaGif:
ACTION VisualizzaGif { EXEC_STRING xgif %(File)Arg_1"File Gif da visualizzare:" WINDOW_TYPE NO_STDIO DESCRIPTION Fare doppio clic o rilasciare un file per\ avviare il visualizzatore Gif. }
Poiché la definizione non include un campo ICON, l'azione userà l'icona predefinita del sistema.
Inserire l'azione di mappatura seguente per collegare l'azione VisualizzaGif all'azione Visualizza specificata nella definizione del tipo di dati. Usare il campo ARG_TYPE per restringere l'azione di visualizzazione ai file di tipo Gif.
ACTION Visualizza { ARG_TYPE Gif TYPE MAP MAP_ACTION VisualizzaGif }
Salvare il file.
Fare doppio clic su “Ricarica azioni” nel gruppo Strumenti_desktop per rileggere il database.
I campi della sezione DATA_ATTRIBUTES
definiscono l'aspetto e il comportamento del tipo di dati. Oltre
a specificare il nome del tipo di dati, essi permettono di definire:
L'icona da usare nella Gestione di file (campo ICON)
Il comportamento al doppio clic sull'icona e il contenuto del menu Selezione (campo ACTIONS)
Usare il campo ICON per specificare l'icona da usare nella Gestione di file per rappresentare il tipo di dati. Se non viene specificata alcuna icona, la Gestione di file userà solo un'etichetta.
Il valore del campo ICON può essere:
Con il termine nome base si intende il nome del file contenente l'immagine dell'icona esclusi i suffissi per la dimensione (m e t) e per il tipo di immagine (bm e pm). Ad esempio, per i file IconaGiochi.m.pm e IconaGiochi.t.pm, il nome base sarà IconaGiochi.
Se si utilizza il nome base, i file delle icone devono trovarsi in directory incluse nel percorso di ricerca delle icone:
Per le icone personali: DirectoryIniziale/.dt/icons
Per le icone di sistema: /etc/dt/appconfig/icons/lingua
Il percorso assoluto del file dell'icona, incluso il nome completo del file.
L'uso del percorso assoluto è necessario solo se il file dell'icona non si trova in una directory del percorso di ricerca. Ad esempio, se il file IconaGiochi.m.pm si trova nella directory /doc/progetti, che non è inclusa nel percorso di ricerca delle icone, il valore del campo ICON dovrà essere /doc/progetti/IconaGiochi.m.pm.
La Tabella 13–1indica le dimensioni in cui creare le icone e i nomi da utilizzare per i rispettivi file.
Dimensione in pixel |
Nome del file a mappa di bit |
Nome del file a mappa di pixel |
---|---|---|
32 x 32 |
nome.m.bm |
nome.m.pm |
16 x 16 |
nome.t.bm |
nome.t.pm |
Per associare i tipi di dati alle azioni sono disponibili due metodi:
Specificare nel campo ACTIONS della
sezione DATA_ATTRIBUTES
le azioni
che dovranno comparire nel menu Selezione della Gestione di file. La prima
azione specificata sarà quella predefinita (quella eseguita al doppio
clic).
Limitare le azioni a determinati tipi di dati usando il campo ARG_TYPE.
Ad esempio, la definizione seguente crea un tipo di dati per i file “readme” creati dall'amministratore di sistema che abbiano un nome nella forma *.rm.
DATA_ATTRIBUTES FileReadme { ICON SysReadMe ACTIONS Open,Rispondi } DATA_CRITERIA CriteriFileReadme { NAME_PATTERN *.rm DATA_ATTRIBUTES_NAME FileReadme }
Qui di seguito è definita un'azione Rispondi che apre una copia del file nell'Editor di testo. Salvando il file e uscendo dall'Editor di testo, il file viene inviato via posta elettronica all'amministratore di sistema (all'indirizzo sysadmin@utd).
ACTION Rispondi { ARG_TYPE FileReadme 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 }
I file associati ai tipi di dati invisibili non vengono visualizzati nella Gestione di file.
Per specificare la caratteristica di invisibilità per il tipo
di dati definito, usare come segue il campo PROPERTIES
della sezione DATA_ATTRIBUTES
:
PROPERTIES invisible
La Tabella 13–2mostra
alcuni campi DATA_ATTRIBUTES
che
vengono usati principalmente dai programmatori di applicazioni. Essi specificano
il comportamento dei file in risposta a diverse attività degli utenti.
Per maggiori informazioni, vedere il manuale Common Desktop Environment Programmer's Guide, incluso nella documentazione per sviluppatori.
Tabella 13–2 Campi e descrizioni di DATA_ATTRIBUTES
Campo |
Descrizione |
---|---|
Per le directory ed altri tipi di raccoglitori. Specifica l'azione da eseguire quando si sposta un file in un raccoglitore con questo tipo di dati. |
|
Per le directory ed altri tipi di raccoglitori. Specifica l'azione da eseguire quando si copia un file in un raccoglitore con questo tipo di dati. |
|
Specifica l'azione da eseguire quando si collega un file ad un file con questo tipo di dati. |
|
Specifica che i file con questo tipo di dati contengono un testo che può essere visualizzato in un'area di testo. |
|
Specifica il tipo di media ToolTalk corrispondente. |
|
Specifica il tipo MIME corrispondente. |
|
Specifica il tipo X400 corrispondente. |
I campi della sezione DATA_CRITERIA
definiscono i criteri da utilizzare
per assegnare un determinato tipo di oggetto ad un file o a una directory.
Per l'identificazione dei tipi di oggetti si possono usare i criteri indicati nella Tabella 13–3.
Tabella 13–3 DATA_CRITERIA: criteri e descrizioni
Si possono usare più criteri per uno stesso tipo di dati. Tuttavia, non si dovrebbero usare insieme i criteri NAME_PATTERN e PATH_PATTERN.
Usare il campo NAME_PATTERN per specificare il tipo di nome richiesto. Il valore del campo può includere i seguenti caratteri speciali:
?: corrisponde a qualsiasi carattere singolo
*: corrisponde a qualsiasi sequenza di caratteri (incluse le stringhe vuote)
[cc…]: corrisponde a uno qualsiasi dei caratteri (c) racchiusi tra parentesi
[c–c]: corrisponde a uno qualsiasi dei caratteri inclusi nell'ambito tra c e c
La definizione seguente crea un tipo di dati basato sul nome del file. Il nome deve iniziare con QS e terminare in .doc.
DATA_ATTRIBUTES QS_Doc { DESCRIPTION Questo file è un documento del progetto \ QS. ICON Word_Doc ACTIONS Open } DATA_CRITERIA Criteri_QS_Doc { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME QS_Doc }
La definizione seguente crea un tipo di dati applicabile alle directory di nome Demo_n, dove n è un valore da 0 a 9.
DATA_ATTRIBUTES Directory_demo { DESCRIPTION Directory: fare doppio clic per aprirla. ICON Demo ACTIONS OpenInPlace,OpenNewView } DATA_CRITERIA Criteri_directory_demo { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Directory_demo }
Usare il campo PATH_PATTERN per specificare il percorso. Si possono usare gli stessi caratteri speciali descritti per NAME_PATTERN.
Ad esempio, il tipo di dati seguente utilizza un criterio basato sul percorso.
DATA_ATTRIBUTES Illustrazioni_Progetto { DESCRIPTION File grafico per il progetto QS. Fare doppio clic \ sull'icona per visualizzarlo. ICON IllustrazioneQS } DATA_CRITERIA Criteri_Illustrazioni_Progetto { DATA_ATTRIBUTES_NAME Illustrazioni_Progetto PATH_PATTERN */progetti/QS/figure/* }
Per creare un tipo di dati basato sia sul nome del file che sulla posizione, includere il nome nel valore PATH_PATTERN. Non è possibile usare sia NAME_PATTERN che PATH_PATTERN nella stessa definizione dei criteri.
La seguente definizione del tipo di dati Sorgenti_QS si applica a tutti i file di nome appn.c, dove n è un valore da 1 a 9, situati nelle directory al di sotto di */progetti/QS.
DATA_ATTRIBUTES Sorgenti_QS { … } DATA_CRITERIA Criteri_Sorgenti_QS { PATH_PATTERN */progetti/QS/*/app[1-9].c DATA_ATTRIBUTES_NAME Sorgenti_QS }
Il tipo di dati seguente si applica a tutti i file della directory /doc/progetto1 di nome capnn.xxx, dove n è un valore da 0 a 9, e xxx è un qualsiasi suffisso di tre caratteri.
DATA_ATTRIBUTES Capitoli { DESCRIPTION Capitolo della relazione sul progetto. ICON capitolo ACTIONS Edit,Print } DATA_CRITERIA CriteriCapitoli { PATH_PATTERN /doc/progetto1/cap[0-9][0-9].??? DATA_ATTRIBUTES_NAME Capitoli }
Usare il campo MODE per specificare le autorizzazioni richieste.
I criteri di modalità vengono in genere utilizzati in combinazione con i tipi di dati basati sul nome, sulla posizione o sul contenuto. Permettono di limitare l'applicazione del tipo di dati ai file o alle directory, o di specificare i tipi di autorizzazioni richieste.
Il campo MODE può includere gli operatori logici indicati nella Tabella 13–4e i caratteri indicati nella Tabella 13–5.
Tabella 13–4 Descrizione degli operatori logici del campo MODE
Operatore |
Descrizione |
---|---|
! | |
& | |
| |
Tabella 13–5 Descrizione dei caratteri del campo MODE
Carattere |
Descrizione |
---|---|
Il tipo di dati è applicabile solo ai file |
|
Il tipo di dati è applicabile solo alle directory |
|
r |
Il file è leggibile da tutti gli utenti |
Il file è scrivibile da tutti gli utenti |
|
Il file è eseguibile da tutti gli utenti |
|
Il file è un collegamento |
Nell'impostazione predefinita, la modalità è irrilevante.
I campi seguenti limitano il tipo di dati nel modo descritto:
f&!w: file di sola lettura
!w: file e directory di sola lettura
f&x: file eseguibili
f&r&x: file scrivibili ed eseguibili
x|!w: file eseguibili o di sola lettura
La definizione seguente crea un tipo di dati applicabile a file di sola lettura e non eseguibili il cui nome corrisponda allo schema *.doc. Si presume che per questo tipo di dati sia stata definita un'azione Visualizza.
DATA_ATTRIBUTES DocumentoSolaLettura { ICON sola_lettura DESCRIPTION Questo documento non è accessibile in \ scrittura. Facendo doppio clic verrà \ avviato l'editor in modalità sola lettura. ACTIONS Visualizza } DATA_CRITERIA CriteriDocumentoSolaLettura { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME DocumentoSolaLettura }
Usare il campo CONTENT per specificare l'identificazione del tipo di dati in base al contenuto del file. Questo criterio può essere usato insieme a quelli basati sul nome e sulla posizione.
Questo metodo di identificazione può essere basato sia su una stringa che su un numero contenuto nel file. Il primo byte del file corrisponde al numero 0.
Per identificare il tipo di dati in base a una stringa contenuta nel file, usare la sintassi:
CONTENT byte_iniziale string stringa
Per identificare il tipo di dati in base a un numero contenuto nel file, usare la sintassi:
CONTENT byte_iniziale byte numero CONTENT byte_iniziale short numero CONTENT byte_iniziale long numero
Per basare l'identificazione sul contenuto di una directory, usare la sintassi:
CONTENT 0 filename "nomefile"
Usare la notazione C standard per i numeri ottali (iniziando con o) ed esadecimali (iniziando con oX) .
L'uso del metodo di identificazione basato sul contenuto rallenterà le prestazioni del sistema. Se possibile, usare i criteri basati sul nome e sulla posizione.
Il tipo di dati seguente, Wingz_scrivibili, si applica a tutti i file con autorizzazione di scrittura contenenti la stringa WNGZ all'inizio del file.
DATA_ATTRIBUTES Wingz_scrivibili { … } DATA_CRITERIA Criteri_Wingz_scrivibili { CONTENT 0 string WNGZ MODE w&!d DATA_ATTRIBUTES_NAME Wingz_scrivibili }
È possibile creare un tipo di dati con diversi criteri indipendenti. In questo caso, un file può essere assegnato al tipo di dati se risponde ad uno o ad entrambi i criteri.
Definire la sezione DATA_ATTRIBUTES
per il tipo di dati.
Definire un campo nella sezione DATA_CRITERIA
per ogni attributo.
Usare il campo DATA_ATTRIBUTES_NAME per collegare
ognuno dei criteri alla stessa definizione di DATA_ATTRIBUTES
.
Le definizioni seguenti creano il tipo di dati Mif. L'identificazione del tipo di dati sarà basata sul nome o sul contenuto.
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Open,Print } DATA_CRITERIA Criteri_mif_Nome { DATA_ATTRIBUTES_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Criteri_Mif_Contenuto { DATA_ATTRIBUTES_NAME Mif CONTENT 1 string MIFFile }
Il percorso di ricerca per i tipi di dati include le directory dipendenti dalla lingua. Il desktop utilizza il valore della variabile LANG per determinare le directory in cui cercare le definizioni dei tipi di dati.
Le definizioni dei tipi di dati tradotti devono trovarsi nelle directory appropriate all'interno dei percorsi di ricerca delle azioni.
Il percorso di ricerca predefinito include le seguenti directory:
Azioni personali: DirectoryIniziale/.dt/types
Azioni di sistema: /etc/dt/appconfig/types/lingua
Azioni predefinite: /usr/dt/appconfig/types/lingua