# Introduzione alle azioni e ai tipi di dati

Le
azioni e i tipi di dati sono componenti importanti per l'integrazione delle applicazioni nel desktop. Essi permettono di creare un'interfaccia utente per l'avvio delle applicazioni e per la gestione dei file di dati.

sag.intac.mkr.2
sag.intac.mkr.5

Questo capitolo contiene un'introduzione ai concetti di azione e di tipo di dati. In particolare, esso descrive:

- Le ragioni per cui è utile creare azioni e tipi di dati per le applicazioni.

- Le relazioni reciproche tra azioni e tipi di dati.

- Le relazioni tra azioni e tipi di dati e le operazioni di stampa del desktop.

## Vedere anche

Le procedure e le regole per la creazione delle azioni e dei tipi di dati sono trattate in tre capitoli di questo manuale.

- Il sag.dtcra.mkr.1 spiega come creare azioni e tipi di dati usando l'applicazione del desktop Creare azione.

  Questa applicazione può essere usata per creare azioni e tipi di dati per la maggior parte delle applicazioni senza bisogno di conoscere la sintassi per la loro definizione.

- Il sag.cract.mkr.1 e il sag.crdt.mkr.1 spiegano come creare azioni e tipi di dati manualmente creando ed editando i file di configurazione.

  La procedura di creazione deve essere eseguita manualmente quando si desidera usare le funzioni avanzate non supportate da Creare azione.

## Introduzione alle azioni

Le azioni sono istruzioni scritte per automatizzare alcune operazioni del desktop, come l'avvio delle applicazioni e l'apertura dei file di dati. Il loro funzionamento è molto simile a quello delle macro o delle funzioni di programmazione. Ogni azione è associata a un nome che viene usato per eseguirla.

In generale, si definisce un'azione per semplificare l'esecuzione di un'operazione dall'interfaccia utente del desktop. Il desktop permette di associare alle azioni vari componenti dell'interfaccia utente, come icone, controlli del Pannello principale e opzioni dei menu.

### Possibili usi delle azioni

Ad esempio, il gruppo Strumenti_desktop della Gestione di applicazioni contiene varie icone per l'avvio di utility del desktop.

### Icone di azioni nel gruppo di applicazioni Strumenti_desktop

Facendo doppio clic su una di queste icone viene eseguita l'azione corrispondente. L'esempio seguente riporta una parte della definizione dell'azione che viene eseguita facendo doppio clic sull'icona Xwd Display. Questa azione è definita nel file di configurazione `/usr/dt/appconfig/types/`lingua`/xclients.dt`:

    ACTION Xwud
    {
      LABEL        Visualizzazione Xwd
      TYPE         COMMAND
      EXEC_STRING  /usr/bin/X11/xwud -noclick -in \
                   %(File)Arg_1“File xwd da visualizzare:“%
      …
    }

Facendo doppio clic sull'icona verrà eseguito il comando specificato nella riga `EXEC_STRING`.

Anche il Pannello principale utilizza le azioni. L'esempio seguente riporta una parte della definizione del controllo Terminale del pannello secondario Applicazioni personali. Il controllo è definito nel file di configurazione `/usr/dt/appconfig/types/`lingua`/dtwm.fp`:

    CONTROL Term
    {
      ICON         Fpterm
      LABEL        Terminale
      PUSH_ACTION  Dtterm
      …
    }

Facendo clic sul controllo Terminale verrà eseguita l'azione specificata nel campo `PUSH_ACTION` — in questo caso, l'azione di nome Dtterm.

In molti casi, le azioni vengono usate anche nei menu. I file di dati sono normalmente associati ad azioni che compaiono nel relativo menu Selezioni nella Gestione di file. Ad esempio, i file XWD (cioè i file che terminano con il suffisso `.xwd` o `.wd`) sono associati a un'azione Aprire che visualizza la loro immagine sullo schermo eseguendo l'azione Xwud.

### L'azione Aprire per il file di tipo XWD

Le azioni che compaiono nel menu
Selezioni sono specificate nella definizione del tipo di dati per i file XWD. Questa definizione si trova nel file di configurazione `/usr/dt/appconfig/types/`lingua`/xclients.dt.`

    DATA_ATTRIBUTES XWD
    {
      ACTIONS Open,Print
      ICON    Dtxwd
      …
    }

Il tipo di dati XWD, e le relative azioni Aprire e Stampare, sono descritti in sag.intac.mkr.6.

###
Come le azioni creano le icone per le applicazioni

Si consideri l'icona “Visualizzazione Xwd” nel gruppo Strumenti_desktop della Gestione di applicazioni. Facendo doppio clic su questa icona viene eseguito il client X `xwud`. Tuttavia, questa icona non rappresenta direttamente l'eseguibile `/usr/bin/X11/xwud`.

L'icona “Visualizzazione Xwd” compare nel gruppo di applicazioni perché la directory contiene un file di nome `Xwud` (vedere la sag.intac.mkr.3). Questo file rappresenta un'azione sottostante con lo stesso nome — Xwud. Nella definizione dell'azione, il nome dell'azione è quello che segue la parola chiave `ACTION`:

    ACTION Xwud
    {
      LABEL         Visualizzazione Xwd
      TYPE          COMMAND
      WINDOW_TYPE   NO_STDIO
      EXEC_STRING   /usr/bin/X11/xwud -noclick -in \
                    %(File)Arg_1"File Xwd da visualizzare:"%
      DESCRIPTION   L'azione Visualizzazione Xwd (Xwud) visualizza \
                    un file xwd creato con l'azione Catturare Xwd \
                    (Xwd). Utilizza il comando 'xwud'.
    }

Il file viene detto file dell'azione perché rappresenta l'azione. Si definiscono in questo modo i file eseguibili con lo stesso nome dell'azione che rappresentano. La sua icona nella Gestione di applicazioni (o nella Gestione di file) viene detta
icona dell'azione, o
icona dell'applicazione, perché permette di avviare l'applicazione che rappresenta con un doppio clic.

#### Icona dell'applicazione (o dell'azione) che rappresenta il file dell'azione

Quando la Gestione di applicazioni individua un file eseguibile, essa verifica se il database delle azioni contiene un'azione con un nome corrispondente. In caso affermativo, il file viene identificato come file dell'azione.

Il contenuto del file dell'azione è irrilevante; in genere, i file delle azioni contengono un testo di commento che descrive la loro funzione nel desktop.

Il file dell'azione non deve essere confuso con il file di definizione dell'azione. Il primo è un file con lo stesso nome dell'azione, usato per creare l'icona dell'applicazione nella Gestione di file o nella Gestione di applicazioni. Il secondo è un file di nome nome`.dt` contenente la definizione dell'azione.

Quando il desktop identifica un file di un'azione, esso ne determina l'aspetto e il comportamento utilizzando la definizione di quell'azione.

- Il campo `EXEC_STRING` specifica il comportamento dell'icona dell'applicazione. Nel caso dell'icona “Visualizzazione Xwd”, il campo `EXEC_STRING` specifica l'esecuzione del client X `xwud` con determinati argomenti.

- Il campo `LABEL` specifica l'etichetta usata per l'icona dell'applicazione.

- Il campo `DESCRIPTION` contiene il testo che verrà visualizzato richiedendo l'aiuto sull'elemento.

- L'icona dell'applicazione Xwud utilizza l'immagine predefinita per le azioni perché la sua definizione non contiene un campo `ICON` che specifichi un'immagine diversa.

  Al contrario, l'icona “Comprimere File” utilizza un'immagine diversa perché la definizione dell'azione sottostante contiene un campo `ICON`:

  Ad esempio:

      ACTION Compress
      {
         LABEL Comprimere File
         ICON  Dtcmprs
         …
      }

#### Icona specificata dal campo ICON nella definizione dell'azione

L'azione Xwud viene detta un'azione di comando, perché la sua definizione contiene il comando da eseguire ( `EXEC_STRING`). Il campo `TYPE` nella definizione dell'azione specifica a quale tipo appartiene l'azione.

Inizialmente, l'icona “Visualizzazione Xwd” appare solo nel gruppo di applicazioni Strumenti_desktop. Tuttavia, è possibile creare altre copie dell'icona ed inserirle in qualsiasi directory alla quale si abbia accesso in scrittura. Finché la definizione dell'azione Xwud farà parte del database, qualsiasi file eseguibile creato con il nome `Xwud` rappresenterà quell'azione, e la sua icona nella Gestione di file o nella Gestione di applicazioni potrà essere usata per eseguirla.

### Come le azioni utilizzano i file di dati come
argomenti

Un argomento di un comando è un oggetto, solitamente un
file, su cui il comando viene eseguito. Un'azione può essere scritta in modo da accettare un file come argomento.

Ad esempio, il campo `EXEC_STRING` dell'azione Xwud specifica che è richiesto un file come argomento:

    EXEC_STRING   /usr/bin/X11/xwud -noclick -in \
                  %(File)Arg_1"File Xwd da visualizzare:"%

Il termine `Arg` indica l' argomento. La sintassi
`Arg_1` significa che si tratta del primo argomento, mentre `(File)` indica che l'azione tratterà quell'argomento come un file.

Il modo più semplice per specificare un file come argomento consiste nel rilasciare un file di dati sull'icona dell'applicazione. Il desktop determina il percorso del file rilasciato e lo inserisce nella riga di comando al posto del testo tra i due simboli `%` (`%(File)Arg_1“File Xwd da visualizzare:"%`). In questo modo, il comando che viene eseguito è:

    /usr/bin/X11/xwud -noclick -in percorso_file

Facendo doppio clic sull'icona dell'applicazione, il desktop determina dal campo `EXEC_STRING` che è richiesto un file come argomento, e visualizza un riquadro di dialogo che chiede all'utente di inserire un percorso o un nome per il file. Nel caso dell'azione Xwud, la richiesta sarà:

    File Xwd da visualizzare:

Il percorso o il nome del file inserito dall'utente verrà usato come argomento del comando.

### Altri impieghi delle azioni

Oltre all'impiego descritto per l'avvio delle applicazioni, le azioni vengono utilizzate per creare funzionalità per altre aree del desktop:

- Pannello principale.

  La definizione di un controllo del Pannello principale comprende campi che specificano le azioni da eseguire quando l'utente fa clic sul controllo o vi rilascia un file. Per maggiori informazioni, vedere sag.frpc.mkr.15.

- Menu.

  La sintassi per la definizione dei menu di controllo delle finestre o degli spazi di lavoro permette di specificare l'azione da eseguire quando l'utente seleziona un'opzione. Per maggiori informazioni, vedere sag.wmcnf.mkr.8 e la pagina di spiegazioni `dtwmrc(4)`.

- Comunicazioni tra le applicazioni.

  Un'applicazione può essere realizzata in modo da inviare e ricevere informazioni usando un tipo speciale di azione, detta messaggio di ToolTalk (`TT_MSG`). Le azioni `TT_MSG` sono descritte nella documentazione dell'ambiente di sviluppo per il desktop.

## Introduzione ai tipi di dati

Quando si crea un nuovo file di dati, l'aspetto e il comportamento della sua icona nella Gestione di file varia a seconda del tipo di dati associati a quel file. Il desktop comprende un meccanismo di gestione dei tipi di dati che offre la possibilità di personalizzare l'aspetto e il comportamento di file e directory.

###
Cos'è un tipo di dati?

Un tipo di dati è un costrutto definito all'interno del database del desktop. L'esempio seguente riporta la definizione del tipo di dati XWD. La definizione è contenuta nel file di configurazione `/usr/dt/appconfig/types/`lingua`/xclients.dt`:

    DATA_ATTRIBUTES XWD
    {
       ACTIONS         Open,Print
       ICON            Dtxwd
       NAME_TEMPLATE   %s.xwd
       MIME_TYPE       application/octet-stream
       SUNV3_TYPE      xwd-file
       DESCRIPTION     Questo file contiene un'immagine grafica in \
                       formato XWD. In genere questi file vengono \
                       creati catturando un'immagine dallo schermo \
                       con l'azione Catturare Xwd. Il suo tipo di dati \
                       è denominato XWD. I file XWD terminano con \
                       l'estensione '.xwd' o '.wd'.
    }

    DATA_CRITERIA XWD1
    {
       DATA_ATTRIBUTES_NAME  XWD
       MODE                  f
       NAME_PATTERN          *.xwd
    }

    DATA_CRITERIA XWD2
    {
       DATA_ATTRIBUTES_NAME  XWD
       MODE                  f
       NAME_PATTERN          *.wd
    }

Ogni definizione di un tipo di dati comprende due parti:

`DATA_ATTRIBUTES` | Gli attributi dei dati descrivono l'aspetto e il comportamento del tipo di dati.
`DATA_CRITERIA` | I criteri specificano le regole (basate sul nome o sul contenuto) per l'assegnazione del file a un determinato tipo di dati.

Il campo `DATA_ATTRIBUTES_NAME` collega i criteri agli attributi.

Per ogni attributo (`DATA_ATTRIBUTE`) possono essere definiti più criteri (`DATA_CRITERIA`). Ad esempio, il tipo di dati XWD possiede due criteri diversi per i nomi dei file ( `NAME_PATTERN`) che specificano la possibilità di usare i suffissi `.xwd` o `.wd`.

###
Come i tipi di dati collegano i file di dati alle azioni

Si consideri il tipo di dati XWD. Per creare un file di tipo XWD, l'utente assegna al file un nome che termini con uno dei due suffissi (o estensioni) accettati: `.xwd` o`.wd`. Il desktop utilizza questo nome come criterio per designare il tipo di file.

Il tipo di dati XWD assegna ad ogni file le seguenti caratteristiche:

- Un'icona caratteristica che permette di riconoscere facilmente il tipo di file.

- Un testo di aiuto che fornisce informazioni sul tipo di dati.

- Un menu Selezioni personalizzato nella Gestione di file contenente le azioni Aprire e Stampare. L'azione Aprire associata ai file XWD esegue l'azione Xwud.

#### Esecuzione delle azioni dal menu Selezioni

Il menu Selezioni della Gestione di file è attivo solo quando è stato selezionato un file o una directory. I comandi che compaiono nella parte inferiore del menu variano a seconda del tipo di dati. Nel caso dei file XWD, il menu Selezioni presenterà le opzioni Aprire e Stampare.

Il campo `ACTIONS` nella definizione del tipo di dati specifica i comandi che verranno aggiunti al menu Selezioni per quel tipo di dati.

    DATA_ATTRIBUTES XWD
    {
          ACTIONS   Open,Print
          …
    }

Il contenuto del menu Selezioni della Gestione di file dipende dal tipo di dati dell'oggetto selezionato. Tuttavia, l'azione Aprire è comune a molti tipi di dati diversi.

##### Il menu Selezioni associato a un file XWD

In genere, l'azione Aprire
avvia l'applicazione a cui è associato il file di dati. Ad esempio, aprendo un file XWD si esegue l'azione Xwud, che a sua volta eseguirà il client X xwud per visualizzare l'immagine del file sullo schermo. In altre parole, per il tipo di dati XWD l'azione Aprire coincide con l'azione Xwud. Allo stesso modo, aprendo un file di dati di tipo TEXTFILE verrà avviato l'Editor di testo, mentre aprendo un file BM (a mappa di bit) o PM (a mappa di pixel) verrà avviato l'Editor delle icone.

La possibilità di creare una serie di azioni Aprire che eseguono operazioni diverse si basa su due caratteristiche delle definizioni delle azioni:

- La mappatura delle azioni.

  La mappatura delle azioni permette di creare un'azione che esegua un'altra azione anziché eseguire direttamente un comando. Ad esempio, è possibile creare un'azione Aprire che sia mappata per (cioè che esegua) l'azione Xwud.

- La restrizione dei tipi di dati associati alle azioni.

  Le definizioni delle azioni possono includere un campo `ARG_TYPE` che limiti l'esecuzione dell'azione a certi tipi di dati. Ad esempio, si può specificare che l'azione Aprire mappata per l'azione Xwud venga applicata solo ai file di dati di tipo XWD.

Qui di seguito è riportata la definizione che mappa l'azione Aprire dell'azione Xwud per il tipo di dati XWD. La definizione si trova nel file di configurazione `/usr/dt/appconfig/types/lingua/xclients.dt` del database:

    ACTION Open
    {
       LABEL       Aprire
       ARG_TYPE    XWD
       TYPE        MAP
       MAP_ACTION  Xwud
    }

Il campo `TYPE` specifica che si tratta di un'azione di mappatura; il campo `MAP_ACTION` specifica che questa azione dovrà eseguire l'azione Xwud. Il campo `ARG_TYPE` specifica che questa azione verrà applicata solo ai file associati al tipo di dati XWD.

Si confronti ora la definizione precedente dell'azione Aprire con la definizione riportata qui di seguito, contenuta nel file del database `/usr/dt/appconfig/types/lingua/dt.dt`:

    ACTION Open
    {
       LABEL       Aprire
       ARG_TYPE    BM
       TYPE        MAP
       MAP_ACTION  Dticon
    }

Questa definizione si applica ai file associati al tipo di dati ( `ARG_TYPE`) BM (file a mappa di bit). La definizione mappa l'azione Aprire sull'azione Dticon, cioè sull'azione che avvia l'Editor delle icone.

####
Definizione dell'effetto del doppio clic in base al tipo di dati

L'effetto del doppio clic associato al tipo di dati è definito dalla prima voce del campo `ACTIONS`. Nel caso del tipo di dati XWD, il doppio clic esegue l'azione Aprire, che a sua volta eseguirà l'azione Xwud.

####
Rilascio di un file di dati sull'icona di un'azione

Quando si rilascia un file di dati sull'icona di un'azione, il sistema esegue quell'azione usando il file di dati come argomento (vedere sag.intac.mkr.4).

Ad esempio, rilasciando un file di dati XWD sull'icona “Visualizzazione Xwd” verrà eseguita l'azione Xwud utilizzando come argomento il file rilasciato. Il client X `xwud` verrà quindi eseguito con quel file di dati.

###
Creazione di azioni di stampa associate ai tipi di dati

Per stampare un file di dati dal desktop si possono usare i seguenti metodi:

- Usare il comando Stampare del menu Selezioni della Gestione di file.

- Rilasciare un file di dati su un'area appropriata del desktop (il controllo della stampante del Pannello principale o l'icona di una stampante nella Gestione della stampa).

Oltre a questi metodi generali, in molti casi è possibile stampare i file dall'interno delle applicazioni.

I metodi di stampa del desktop utilizzano azioni di nome Stampare. Come nel caso di Aprire, il nome Stampare viene usato per molti tipi di dati diversi. Ciò significa che anche le azioni Stampare utilizzano la mappatura delle azioni e il campo `ARG_TYPE` per personalizzare la stampa per ogni tipo di dati.

L'esempio seguente riporta l'azione Stampare associata al tipo di dati XWD. La definizione si trova in `/usr/dt/appconfig/types/`lingua`/xclients.dt`:

    ACTION Print
    {
       LABEL       Stampare
       ARG_TYPE    XWD
       TYPE        MAP
       MAP_ACTION  NoPrint
    }

Questa azione Stampare, specifica per i file XWD, è mappata su un'azione NoPrint. NoPrint è un'azione speciale definita in `/usr/dt/appconfig/types/`lingua`/dt.dt`, che
visualizza un messaggio di avvertimento indicante che il tipo di dati dell'oggetto non può essere stampato.

Si confronti ora l'azione Stampare associata ai file XWD con la seguente azione Stampare per i file PCL:

    ACTION Print
    {
       LABEL       Stampare
       ARG_TYPE    PCL
       TYPE        MAP
       MAP_ACTION  PrintRaw
    }

L'azione PrintRaw, definita nel file di configurazione `/usr/dt/appconfig/types/`lingua`/print.dt`, contiene la riga comandi per la stampa dei file PCL.

    ACTION PrintRaw
    {
       TYPE          COMMAND
       WINDOW_TYPE   NO_STDIO
       EXEC_STRING   /usr/dt/bin/dtlp -w %(File)Arg_1%
    }