# Einführung in Aktionen und Datentypen

Bei Aktionen und Datentypen handelt es sich um wichtige Komponenten bei der Integrierung von Anwendungen auf dem Desktop. Sie stellen eine Möglichkeit zur Verfügung, eine Benutzerschnittstelle zum Starten von Anwendungen und zum Bearbeiten von deren Datendateien zu benutzen.

SAG.IntAc.mkr.2
SAG.IntAc.mkr.5

In diesem Kapitel wird das Konzept von Aktionen und Datentypen erläutert. Es wird beschrieben,

- warum es günstig ist, Aktionen und Datentypen für Anwendungen zu erstellen.

- welche Beziehung zwischen Aktionen und Datentypen besteht.

- in welcher Beziehung Aktionen und Datentypen zum Drucken über das Desktop stehen.

## Weiterführende Informationen

Die Verfahren und Regeln für das Erstellen von Aktionen und Datentypen werden in diesem Handbuch in drei Kapiteln behandelt:

- In SAG.dtCrA.mkr.1 wird erläutert, wie Aktionen und Datentypen mit der Desktop- Anwendung 'Aktion erstellen' erstellt werden.

  Mit 'Aktion erstellen' können Aktionen und Datentypen für die meisten Anwendungen erstellt werden, ohne daß der Benutzer die Syntaxregeln für deren Definitionen lernen muß.

- In SAG.CrAct.mkr.1 und SAG.CrDT.mkr.1 wird erläutert, wie Aktionen und Datentypen manuell erstellt werden, indem Konfigurationsdateien erstellt und bearbeitet werden.

  Wenn der Benutzer erweiterte Funktionen verwenden möchte, die durch 'Aktion erstellen' nicht unterstützt werden, ist es notwendig, daß er Aktionen und Datentypen manuell erstellt.

## Einführung in Aktionen

Bei Aktionen handelt es sich um Instruktionen, mit denen Desktop-Aufgaben wie die Ausführung von Anwendungen und das Öffnen von Datendateien automatisiert werden. Aktionen funktionieren ähnlich wie Anwendungsmakros oder Programmierfunktionen. Jede Aktion verfügt über einen Namen, der für die Ausführung der Aktion verwendet wird.

Sobald eine Aktion definiert wird, kann sie dazu verwendet werden, die Desktop-Benutzerschnittstelle anzupassen, so daß Aufgaben einfacher ausgeführt werden können. Das Desktop verfügt über Benutzerschnittstellenkomponenten wie zum Beispiel Symbole, um Bedienelemente im Bedienfeld und Menüelemente für Aktionen zur Verfügung zu stellen.

### Verwendungsmöglichkeiten für Aktionen

Beispielsweise enthält die Gruppe von Anwendungen 'Desktop_Werkzeuge' im Anwendungsmanager Symbole, über die verschiedene Dienstprogramme gestartet werden.

### Symbole für Aktionen in der Gruppe von Anwendungen Desktop_Werkzeuge

Jedes dieser Symbole führt eine Aktion aus, wenn auf diesem Symbol doppelt geklickt wird. Das folgende Beispiel zeigt einen Teil der Definition der Aktion, die ausgeführt wird, wenn der Benutzer auf dem Symbol mit der Bezeichnung Xwd Display doppelt klickt. Die Aktion ist in der Konfigurationsdatei `/usr/dt/appconfig/types/`sprache`/xclients.dt` definiert.

    ACTION Xwud
    {
       LABEL         Xwd Display
       TYPE          COMMAND
       EXEC_STRING   /usr/bin/X11/xwud -noclick -in \
                     %(File)Arg_1“Xwd File To Display:"%
       …
    }

Der Befehl im Feld `EXEC_STRING` der Aktion wird ausgeführt, wenn der Benutzer dieses Symbol doppelklickt.

Das Bedienfeld verwendet ebenfalls Aktionen. Das folgende Beispiel zeigt einen Teil der Definition des Bedienelements mit der Bezeichnung 'Terminal' in der Bedientafel 'Persönliche Anwendungen'. Das Bedienelement ist in der Konfigurationsdatei `/usr/dt/appconfig/types/`sprache`/dtwm.fp` definiert.

    CONTROL Term
    {
       ICON          Fpterm
       LABEL         Terminal
       PUSH_ACTION   Dtterm
       …
    }

Das Feld `PUSH_ACTION` gibt an, welche Aktion ausgeführt werden soll, wenn der Benutzer das Bedienelement anklickt. In diesem Fall handelt es sich um eine Aktion mit dem Namen Dtterm.

Daneben werden Aktionen häufig in Menüs verwendet. Datendateien verwenden normalerweise Aktionen in ihrem Menü 'Ausgewählt' im Dateimanager. Zum Beispiel verfügen XWD-Dateien (Dateien, deren Namen die Erweiterung`.xwd` oder`.wd` haben) über eine Aktion 'Öffnen', die das Anzeigenbild anzeigt, indem die Aktion 'Xwud' ausgeführt wird.

### Aktion "Öffnen" für Dateien des Datentyps XWD

Die Aktionen im
Menü 'Ausgewählt' werden in der Datentypdefinition für XWD-Dateien angegeben. Die Definition befindet sich in der Konfigurationsdatei `/usr/dt/appconfig/types/`sprache`/xclients.dt.`

    DATA_ATTRIBUTES XWD
    {
       ACTIONS  Open,Print
       ICON     Dtxwd
       …
    }

Der Datentyp XWD und die zugehörigen Aktionen 'Öffnen' und 'Drucken' werden im Abschnitt SAG.IntAc.mkr.6 erläutert.

###
Wie Aktionen Symbole für Anwendungen erstellen

Als Beispiel soll das Symbol Xwd Display in der Gruppe von Anwendungen Desktop_Werkzeuge betrachtet werden. Wird auf diesem Symbol doppelt geklickt, wird der X-Client `xwud` ausgeführt. Dennoch stellt dieses Symbol nicht direkt die ausführbare Datei `/usr/bin/X11/xwud` dar.

Das Symbol Xwd Display wird in der Gruppe von Anwendungen angezeigt, weil in diesem Verzeichnis eine Datei mit dem Namen `Xwud` steht (siehe SAG.IntAc.mkr.3). Diese Datei stellt eine zugrundeliegende Aktion mit demselben Namen, nämlich Xwud dar. In der Aktionsdefinition ist der Aktionsname der Name, der nach dem Schlüsselwort `ACTION` angegeben ist:

    ACTION Xwud
    {
       LABEL         Xwd Display
       TYPE          COMMAND
       WINDOW_TYPE   NO_STDIO
       EXEC_STRING   /usr/bin/X11/xwud -noclick -in \
                     %(File)Arg_1"Xwd Datei anzeigen:"%
       DESCRIPTION   Die Xwd-Anzeige (Xwud) "Aktion Xwd-Anzeige" zeigt\
                     eine xwd-Datei, die mit der Aktion "Xws Capture" (Xwd)\
                     erstellt wurde. Es wird der Befehl "xwud" verwendet.
    }

Die Datei wird als Aktionsdatei bezeichnet, weil sie eine Aktion darstellt. Eine Datei ist eine Aktionsdatei, wenn es sich um eine ausführbare Datei mit demselben Namen wie eine Aktion handelt. Das zugehörige Symbol im Anwendungsmanager (oder im Dateimanager) wird
Aktionssymbol oder
Anwendungssymbol genannt, weil durch Doppelklicken auf diesem Symbol eine Anwendung gestartet wird.

#### Anwendungs-(Aktions-)symbol, das eine Aktionsdatei darstellt

Stellt der Anwendungsmanager eine ausführbare Datei fest, durchsucht er die Datenbank nach Aktionen, um festzustellen, ob Aktionen vorhanden sind, deren Namen dem Dateinamen entsprechen. Wird eine Entsprechung gefunden, weiß der Anwendungsmanager, daß es sich bei der Datei um eine Aktionsdatei handelt.

Der Inhalt der Aktionsdatei ist irrelevant. Aktionsdateien enthalten normalerweise Kommentare mit der Beschreibung ihrer Desktop-Funktionen.

Bei einer Aktionsdatei handelt es sich nicht um eine Definitionsdatei für Aktionen. Die Aktionsdatei ist eine Datei mit demselben Namen wie die Aktion. Sie wird verwendet, um das Anwendungssymbol im Dateimanager oder im Anwendungsmanager zu erstellen. Die Definitionsdatei für Aktionen ist die Datei mit dem Namen name`.dt`, die die Definition der Aktion enthält.

Sobald das Desktop festgestellt hat, daß es sich bei einer Datei um eine Aktionsdatei handelt, wird die zugrundeliegende Aktionsdefinition verwendet, um das Erscheinungsbild und das Verhalten der Aktionsdatei zu definieren.

- Im Feld `EXEC_STRING` wird das Verhalten des Anwendungssymbols angegeben. Im Fall des Symbols Xwd Display wird im Feld `EXEC_STRING` angegeben, daß das Aktionssymbol den X-Client `xwud` mit bestimmten Befehlszeilenargumenten ausführt.

- Im Feld `LABEL` wird die Bezeichnung für das Anwendungssymbol angegeben.

- Im Feld `DESCRIPTION` wird der Text angegeben, der angezeigt wird, wenn der Benutzer die Kontexthilfe aufruft.

- Das Anwendungssymbol Xwud verwendet das Standardsymbolbild für Aktionen, da die Aktionsdefinition kein Feld `ICON` enthält, in dem ein anderes Abbild definiert ist.

  Im Gegensatz dazu verwendet das Symbol mit der Bezeichnung Compress File ein anderes Symbolbild, da die zugrundeliegende Aktionsdefinition ein Feld `ICON` enthält:

  Beispiel:

      ACTION Compress
      {
         LABEL   Datei komprimieren
         ICON    Dtcmprs
         …
      }

#### Symbolbild, das durch das Feld ICON in der Aktionsdefinition angegeben wird

Die Aktion Xwud wird als Befehlsaktion bezeichnet, da ihre Definition den auszuführenden Befehl (`EXEC_STRING`) enthält. Das Feld `TYPE` in der Aktionsdefinition definiert den Aktionstyp.

Zunächst wird das Symbol Xwd Display in der Gruppe von Anwendungen Desktop_Werkzeuge angezeigt. Der Benutzer kann jedoch zusätzliche Exemplare des Aktionssymbols in jedem Verzeichnis erstellen, für das er Schreibberechtigung hat. Solange die Aktionsdefinition für Xwud Bestandteil der Datenbank ist, wird jede ausführbare Datei mit dem Namen `Xwud`, die der Benutzer erstellt, eine Aktionsdatei sein, die diese Aktion darstellt, und das zugehörige Symbol im Dateimanager oder Anwendungsmanager kann verwendet werden, um die Aktion auszuführen.

### Wie Aktionen Datendateien als
Argumente verwenden

Ein
Argument ist das Objekt, normalerweise eine
Datei, an dem der Befehl ausgeführt wird. Aktionen können so definiert werden, daß sie Dateiargumente akzeptieren.

Beispielsweise gibt das Feld `EXEC_STRING` der Aktion Xwud an, daß ein Dateiargument erforderlich ist:

    EXEC_STRING        /usr/bin/X11/xwud -noclick -in \
                       %(File)Arg_1“Xwd Datei anzeigen:"%

Der Term `Arg` steht für das Wort Argument. Die Syntax
`Arg_1` bedeutet das erste Argument, und `(File)` bedeutet, daß die Aktion dieses Argument als eine Datei behandelt.

Die einfachste Weise, in der ein Benutzer ein Dateiargument zur Verfügung stellen kann, besteht darin, eine Datendatei dem Anwendungssymbol zu übergeben. Das Desktop stellt den Pfad der übergebenen Datei fest und setzt diesen in der Befehlszeile anstelle des Texts zwischen den Symbolen `% (%(File)Arg_1“Xwd Datei anzeigen:”%)`. Dann wird folgender Befehl ausgeführt:

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

Wenn der Benutzer auf dem Anwendungssymbol doppelt klickt, stellt das Desktop im Feld `EXEC_STRING` fest, daß ein Dateiargument erforderlich ist, und zeigt ein Dialogfenster an, in dem der Benutzer aufgefordert wird, einen Dateinamen oder Pfad einzugeben. Im Fall der Aktion Xwud lautet die Aufforderung:

    Xwd Datei anzeigen:

Der Dateiname oder Pfad, den der Benutzer eingibt, wird als Dateiargument verwendet.

### Zusätzliche Verwendung für Aktionen

Zusätzlich zum Starten von Anwendungen werden Aktionen im gesamten Desktop verwendet, um Funktionalität in folgenden Bereichen herzustellen:

- im Bedienfeld

  Die Definition für ein Bedienelement im Bedienfeld enthält Felder, in denen die Aktion angegeben wird, die ausgeführt wird, wenn der Benutzer das Bedienelement anklickt oder dem Bedienelement eine Datei übergibt. Weitere Informationen hierzu können dem Abschnitt SAG.FrPC.mkr.15
  entnommen werden.

- in Menüs

  Die Syntax von Fenstermenü- und Arbeitsbereichsmenüdefinitionen ermöglicht dem Benutzer, die Aktion anzugeben, die über ein Menüelement ausgeführt wird. Weitere Informationen hierzu können dem Abschnitt SAG.WMCnf.mkr.6 und der Hilfeseite `dtwmrc(4)` entnommen werden.

- bei der Kommunikation zwischen Anwendungen

  Eine Anwendung kann so eingerichtet werden, daß sie mit einem speziellen Typ von Aktion, nämlich ToolTalk message (`TT_MSG`), Informationen sendet und empfängt. `TT_MSG-` Aktionen werden in der Entwicklerumgebungsdokumentation für das Desktop beschrieben.

## Einführung in Datentypen

Erstellt der Benutzer eine neue Datendatei, kann das Erscheinungsbild und das Verhalten des Symbols der Datei im Dateimanager je nach dem Typ der Datendatei sehr unterschiedlich sein. Diese Fähigkeit, ein angepaßtes Erscheinungsbild und angepaßtes Verhalten für Dateien und Verzeichnisse zu erstellen, wird über den Datentypmechanismus des Desktops zur Verfügung gestellt.

###
Was ist ein Datentyp?

Bei einem Datentyp handelt es sich um ein Konstrukt, das innerhalb der Desktop-Datenbank definiert ist. Das folgende Beispiel zeigt die Definition des Datentyps XWD. Die Definition befindet sich in der Konfigurationsdatei `/usr/dt/appconfig/types/`sprache`/xclients.dt`.

    DATA_ATTRIBUTES XWD
    {
       ACTIONS         Open,Print
       ICON            Dtxwd
       NAME_TEMPLATE   %s.xwd
       MIME_TYPE       application/octet-stream
       SUNV3_TYPE      xwd-file
       DESCRIPTION     Diese Datei enthält ein Grafikbild im Format XWD.\
                       Diese Dateien werden erstellt, wenn mit der Aktion\
                       "XwdCapture" Bilder von Fensterausschnitten gemacht\
                       werden. Der Datentyp wird XWD genannt. XWD-Dateinamen\
                       enden mit ".xwd" oder ".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
    }

Jede Datentypdefinition besteht aus zwei Teilen:

`DATA_ATTRIBUTES` | beschreibt das Erscheinungsbild und das Verhalten des Datentyps.
`DATA_CRITERIA` | gibt an, nach welchen Regeln (Name oder Inhalt) eine Datei diesem Datentyp zugerechnet wird.

Das Feld `DATA_ATTRIBUTES_NAME` verbindet die Kriterien mit den Attributen.

Einem `DATA_ATTRIBUTE` können mehrere `DATA_CRITERIA` zugeordnet sein. Beispielsweise sind für den Datentyp XWD zwei verschiedene Namenskriterien (`NAME_PATTERN`) definiert, nämlich Namen, die in `.xwd` oder in `.wd` enden.

###
Wie Datentypen Datendateien mit Aktionen verbinden

Als Beispiel soll der Datentyp XWD betrachtet werden. Der Benutzer erstellt eine Datei mit dem Datentyp XWD, indem er der Datei eine der zwei Dateinamenerweiterungen `.xwd` oder`.wd` gibt. Das Desktop verwendet den Dateinamen als das Kriterium, nach dem es eine Datei einem Datentyp zuordnet.

Der Datentyp XWD stellt für jede Datei dieses Datentyps folgendes zur Verfügung:

- Ein eindeutiges Symbol, das Benutzern hilft, die Datendateien zu erkennen.

- Kontexthilfe mit Informationen über den Datentyp.

- Ein angepaßtes Menü 'Ausgewählt' im Dateimanager, das die Aktionen 'Öffnen' und 'Drucken' enthält. Die Aktion 'Öffnen' für XWD-Dateien führt die Aktion Xwud aus.

#### Aktionen über das Menü "Ausgewählt" ausführen

Das Menü 'Ausgewählt' im Dateimanager ist nur aktiv, wenn eine Datei oder ein Verzeichnis ausgewählt ist. Die Befehle, die unten im Menü 'Ausgewählt' angezeigt werden, sind abhängig vom Datentyp. Wird beispielsweise eine XWD-Datei ausgewählt, enthält das Menü 'Ausgewählt' die Elemente 'Öffnen' und 'Drucken'.

Das Feld `ACTIONS` in der Datentypdefinition gibt an, welche Befehle im Menü 'Ausgewählt' des Datentyps unten angefügt werden.

    DATA_ATTRIBUTES XWD
    {
       ACTIONS  Open,Print
       …
    }

Der Inhalt des Menüs 'Ausgewählt' ist abhängig vom Datentyp. Aber viele verschiedene Datentypen stellen eine Aktion 'Öffnen' zur Verfügung. Wird eine Datei dieses bestimmten Datentyps im Dateimanager ausgewählt und das Menü 'Ausgewählt' angezeigt, wird im Menü der Befehl 'Öffnen' angezeigt.

##### Das Menü "Ausgewählt" für eine XWD-Datei

Die
Aktion 'Öffnen' führt normalerweise die der Datendatei zugehörige Anwendung aus. Beispielsweise wird durch das Öffnen einer XWD-Datei die Aktion Xwud ausgeführt, die wiederum den X-Client `xwud` ausführt, um das Anzeigeabbild anzuzeigen. Das heißt, bei dem Datentyp XWD ist die Aktion 'Öffnen' synonym mit der Aktion Xwud. Ebenso wird durch das Öffnen einer Datei vom Datentyp TEXTFILE der Texteditor und durch das Öffnen einer Bitmap- oder Pixmap-Datei der Symboleditor ausgeführt.

Die Möglichkeit, verschiedene Aktionen 'Öffnen' zu erstellen, die unterschiedlich verwendet werden, basiert auf zwei Merkmalen von Aktionsdefinitionen:

- Aktionszuordnung

  Die Aktionszuordnung ermöglicht dem Benutzer, eine Aktion zu erstellen, die eine andere Aktion ausführt, anstatt einen Befehl direkt auszuführen. Beispielsweise kann eine Aktion 'Öffnen' erstellt werden, die die Aktion Xwud zuordnet (ausführt).

- Datentypeinschränkungen für eine Aktion

  Aktionsdefinitionen können ein Feld `ARG_TYPE` enthalten, das die Aktion auf bestimmte Datentypen begrenzt. Beispielsweise kann angegeben werden, daß die Aktion 'Öffnen', die die Aktion Xwud zuordnet, nur auf Dateien des Datentyps XWD angewendet wird.

Das folgende Beispiel zeigt die Definition der Aktion, die die Aktion 'Öffnen' für den Datentyp XWD der Aktion Xwud zuordnet. Sie befindet sich in der Datenbankkonfigurationsdatei `/usr/dt/appconfig/types/sprache/xclients.dt`:

    ACTION Open
    {
       LABEL        Öffnen
       ARG_TYPE     XWD
       TYPE         MAP
       MAP_ACTION   Xwud
    }

In dem Feld `TYPE` wird angegeben, daß es sich um eine Zuordnungsaktion (map) handelt. Das Feld `MAP_ACTION` gibt an, daß diese Aktion die Aktion Xwud ausführt. Das Feld `ARG_TYPE` gibt an, daß diese Aktion nur auf Dateien vom Datentyp XWD angewendet wird.

Hierzu zum Vergleich die Definition der Aktion 'Öffnen' in der Datenbankdatei `/usr/dt/appconfig/types/sprache/dt.dt`:

    ACTION Open
    {
       LABEL        Öffnen
       ARG_TYPE     BM
       TYPE         MAP
       MAP_ACTION   Dticon
    }

Diese Definition bezieht sich auf Dateien des Datentyps (`ARG_TYPE`) BM (Bitmap-Dateien). Die Definition ordnet die Aktion 'Öffnen' der Aktion Dticon zu, die den Symbol-Editor ausführt.

####
Verhalten des Datentyps bei Doppelklicken definieren

Das Verhalten des Datentyps bei Doppelklicken wird durch den ersten Eintrag im Feld `ACTIONS` bestimmt. Beispielsweise wird beim Datentyp XWD durch Doppelklicken die Aktion 'Öffnen' ausgeführt, die ihrerseits die Aktion Xwud ausführt.

#### Eine Datendatei an ein Aktionssymbol übergeben

Übergibt der Benutzer eine Datendatei an ein Aktionssymbol, führt das System die Aktion aus und verwendet diese Datendatei als das Argument für die Aktion. (Weitere Informationen können dem Abschnitt SAG.IntAc.mkr.4 entnommen werden.)

Wird beispielsweise eine XWD-Datendatei an ein Symbol Xwd Display übergeben, wird die Aktion Xwud ausgeführt und das Datendateiargument verwendet. Dadurch wird der X-Client `xwud` mit dieser Datendatei ausgeführt.

###
Drucken über das Desktop für einen Datentyp einrichten

Über das Desktop bestehen folgende Möglichkeiten, eine Datendatei zu drucken:

- über den Befehl 'Drucken' (falls verfügbar) im Menü 'Ausgewählt' des Dateimanagers.

- durch das Übergeben einer Datendatei an einen Desktop- Druckerübergabebereich (das Druckersymbol im Bedienfeld oder ein Druckersymbol im Druckmanager).

Zusätzlich zum Drucken über das Desktop stellen viele Anwendungen noch eine Möglichkeit zur Verfügung, von innerhalb der Anwendung zu drucken.

Beim Drucken über Desktop werden Aktionen mit dem Namen 'Drucken' verwendet. Bei 'Drucken' handelt es sich, wie bei 'Öffnen', um einen Aktionsnamen, der für viele verschiedene Datentypen verwendet wird. Aus diesem Grund werden bei den Aktionen 'Drucken' die Aktionszuordnung und das Feld `ARG_TYPE` verwendet, um das Drucken für jeden einzelnen Datentyp anzupassen.

Als Beispiel soll die Aktion 'Drucken' für den Datentyp XWD betrachtet werden. Die Definition befindet sich im Verzeichnis`/usr/dt/appconfig/types/`sprache`/xclients.dt`:

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

Diese Aktion 'Drucken', die sich speziell auf XWD-Dateien bezieht, ist einer Aktion 'NoPrint' zugeordnet. Bei der Aktion NoPrint handelt es sich um eine spezielle Aktion, die in `/usr/dt/appconfig/types/`sprache`/dt.dt` definiert ist. Die Aktion
'NoPrint' zeigt ein Dialogfenster an, das dem Benutzer mitteilt, daß dieser Datentyp nicht gedruckt werden kann.

Hierzu zum Vergleich die Aktion 'Drucken' für PCL-Dateien:

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

Die Aktion 'PrintRaw', die in der Konfigurationsdatei `/usr/dt/appconfig/types/`sprache`/print.dt` definiert ist, enthält die Befehlszeile zum Drucken von PCL-Dateien.

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