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.
In diesem Kapitel wird das Konzept von Aktionen und Datentypen erläutert. Folgende Themen werden beschrieben:
Warum ist es günstig, Aktionen und Datentypen für Anwendungen zu erstellen?
Welche Beziehung besteht zwischen Aktionen und Datentypen?
In welcher Beziehung stehen Aktionen und Datentypen zum Drucken über das Desktop?
Die Verfahren und Regeln für das Erstellen von Aktionen und Datentypen werden in diesem Handbuch in drei Kapiteln behandelt: In
Kapitel 11 wird erläutert, wie Aktionen und Datentypen mit der Desktop-Anwendung 'Aktion erstellen' angelegt 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
Kapitel 12 und Kapitel 13wird 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ß Aktionen und Datentypen manuell erstellt werden.
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.
Nach dem Definieren einer Aktion kann sie zum Anpassen der Desktop-Benutzerschnittstelle verwendet werden, so daß Aufgaben einfacher ausgeführt werden können. Das Desktop verfügt über Benutzerschnittstellenkomponenten wie Symbole, Bedienelemente im Bedienfeld und Menüelemente für Aktionen.
Beispielsweise enthält die Gruppe von Anwendungen 'Desktop-Werkzeuge' im Anwendungsmanager Symbole, über die verschiedene Dienstprogramme gestartet werden.
Jedes dieser Symbole führt eine Aktion aus, wenn Sie auf das Symbol doppelklicken. Das folgende Beispiel zeigt einen Teil der Definition der Aktion, die ausgeführt wird, wenn der Benutzer auf das Symbol mit der Bezeichnung Xwd Display doppelklickt. 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'. Die Kontrolle 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 die auszuführende Aktion an, wenn der Benutzer auf das Bedienelement klickt. In diesem Fall handelt es sich um die Aktion 'Dtterm'.
Daneben werden Aktionen häufig in Menüs verwendet. Datendateien verwenden normalerweise Aktionen in ihrem Menü 'Ausgewählt' im Dateimanager. Beispielsweise verfügen XWD-Dateien (Dateien mit der Namensendung .xwd oder.wd) über eine Aktion 'Öffnen', mit der der Bildschirminhalt durch Ausführen der Aktion Xwud angezeigt wird.
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 ...
}
Erläuterungen zum Datentyp XWD und den dazugehörigen Aktionen 'Öffnen' und 'Drucken' finden Sie im Abschnitt "Wie Datentypen Datendateien mit Aktionen verbinden".
Als Beispiel soll das Symbol Xwd Display in der Gruppe von Anwendungen Desktop-Werkzeuge betrachtet werden. Wenn Sie auf dieses Symbol doppelklicken, wird der X-Client xwud ausgeführt. Dieses Symbol stellt jedoch nicht direkt die aktuelle ausführbare xwud-Datei /usr/bin/X11/xwud dar.
Das Symbol mit der Bezeichnung Xwd Display wird in der Gruppe von Anwendungen angezeigt, und zwar aufgrund der Datei im Verzeichnis mit dem Namen XwudAbbildung 10-3). Diese Datei stellt eine zugrundeliegende Aktion mit demselben Namen dar - Xwud. 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 an, die mit der Aktion \ Xwd 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 dieses Symbol eine Anwendung gestartet wird.
Stellt der Anwendungsmanager eine ausführbare Datei fest, durchsucht er die Datenbank für Aktionen, um festzustellen, ob Aktionen vorhanden sind, deren Namen dem Dateinamen entsprechen. Ist eine Entsprechung vorhanden, handelt es sich bei der Datei um eine Aktionsdatei. Dies wird im Anwendungsmanager automatisch festgestellt.
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, die über denselben Namen wie die Aktion verfügt. 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. Handelt es sich um das Symbol Xwd Display, wird im Feld EXEC_STRING festgelegt, 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 bei Aufruf der Kontexthilfe angezeigt wird.
Das Anwendungssymbol Xwud verwendet das Standardsymbolbild für Aktionen, da die Aktionsdefinition kein Feld ICON enthält, in dem ein anderes Bild definiert wird.
Im Gegensatz dazu verwendet das Symbol mit der Bezeichnung Compress File ein anderes Symbolbild, da die zugrundeliegende Aktionsdefinition ein Feld ICON enthält:
Ein Beispiel:
ACTION Compress{ LABEL Compress File ICON Dtcmprs ... }
Die Aktion Xwud wird als Befehlsaktion bezeichnet, da die entsprechende Definition den auszuführenden Befehl (EXEC_STRING) enthält. Im Feld TYPE in der Aktionsdefinition wird der Aktionstyp definiert.
Zunächst wird das Symbol Xwd Display in der Anwendungsgruppe Desktop-Werkzeuge angezeigt. Der Benutzer kann jedoch zusätzliche Exemplare des Aktionssymbols in jedem Verzeichnis erstellen, für das er eine Schreibberechtigung hat.Solange die Aktionsdefiniton Xwud Teil der Datenbank ist, wird jede ausführbare Datei, die mit dem Namen Xwud erstellt wird, als Aktionsdatei geführt, welche die entsprechende Aktion darstellt. Das dazugehörige Symbol im Datei- oder Anwendungsmanager kann zum Ausführen der Aktion verwendet werden.
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 stellt das erste dar. Mit (File) wird angezeigt, daß die Aktion dieses Argument als Datei behandelt.
Der Benutzer kann ein Dateiargument auf einfache Weise zur Verfügung stellen, indem er dem Anwendungssymbol eine Datendatei übergibt. 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:"%) ein. Anschlieáend wird folgender Befehl ausgeführt:
/usr/bin/X11/xwud -noclick -in Dateipfad
Wenn der Benutzer auf das Anwendungssymbol doppelklickt, stellt das Desktop im Feld EXEC_STRING fest, daß ein Dateiargument erforderlich ist. Anschlieáend wird ein Dialogfenster angezeigt, in dem der Benutzer zur Eingabe eines Dateinamens oder Pfades aufgefordert wird. Handelt es sich um die Aktion Xwud, lautet die Aufforderung:
Xwd-Datei anzeigen:
Der Dateiname oder Pfad, den der Benutzer eingibt, wird als Dateiargument verwendet.
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 eine Aktion angegeben wird. Diese Aktion wird ausgeführt, wenn der Benutzer auf das Bedienelement klickt oder dem Bedienelement eine Datei übergibt. Weitere Informationen finden Sie im Abschnitt "Steuerungen im vorderen Steuerbereich definieren".
in Menüs
Die Syntax der Menüdefinitionen für Fenster und Arbeitsbereich ermöglicht die Angabe der Aktion, die über ein Menüelement ausgeführt wird. Weitere Informationen finden Sie im Abschnitt "Menüs im Workspace Manager " und auf der Hilfeseite dtwmrc(4).
Kommunikation zwischen Anwendungen
Eine Anwendung kann so erstellt werden, daá mit einer speziellen Aktionsart, die als ToolTalk Message (TT_MSG) bezeichnet wird, Informationen gesendet und empfangen werden können. Die TT_MSG-Aktionen werden in der Entwickler-Umgebungsdokumentation für das Desktop beschrieben. .
Erstellt der Benutzer eine neue Datendatei, kann das Erscheinungsbild und das Verhalten des Symbols der Datei im Dateimanager je nach 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 Desktop zur Verfügung gestellt.
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 in der Regel erstellt, \ wenn mit der Aktion 'XwdCapture' \ Bilder von Fensterausschnitten erstellt werden. Die Bezeichnung des Datentyps lautet XWD. Die Namen der XWD-Dateien \ 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 Darstellung und Verhalten des Datentyps.
DATA_CRITERIA- gibt die Regeln (Benennung oder Inhalt) für die Zuordnung einer Datei zu einem bestimmten Datentyp an.
Im Feld DATA_ATTRIBUTES_NAME werden die Kriterien mit den Attributen verbunden.
Es können mehrere DATA_CRITERIA zu einem DATA_ATTRIBUTE. zugeordnet werden. Beispielsweise verfügt der Datentyp XWD über zwei Kriterien, um zwei unterschiedliche Namenskriterien (NAME_PATTERN) festzulegen - die Namensendungen .xwd und .wd.
Als Beispiel wird der Datentyp XWD herangezogen. Der Benutzer erstellt eine Datei des Typs XWD, indem er der Datei eine der beiden folgenden Dateinamenerweiterungen zuweist: .xwd oder .wd. Das Desktop verwendet den Dateinamen als Kriterium für die Zuordnung einer Datei zu diesem Datentyp.
Der Datentyp XWD stellt für jede Datei dieses Datentyps folgendes zur Verfügung:
Ein eindeutiges Symbol, das dem Benutzer 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.
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. Für viele verschiedene Datentypen steht jedoch die Aktion 'Öffnen' zur Verfügung. Bei Auswahl einer Datei dieses bestimmten Datentyps im Dateimanager und anschlieáender Anzeige des Menüs 'Ausgewählt' wird im Menü der Befehl 'Öffnen' eingeblendet.
Die Aktion 'Öffnen' führt normalerweise die mit der Datendatei verbundene 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 jeweilige Bild anzuzeigen. Das heißt, bei dem Datentyp XWD ist die Aktion 'Öffnen' synonym mit der Aktion Xwud. Ebenso wird durch das Öffnen einer Datei des Datentyps 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:
Die Aktionszuordnung ermöglicht dem Benutzer das Erstellen einer Aktion, die, statt einen Befehl direkt auszuführen, eine andere Aktion ausführt. Beispielsweise können Sie eine Aktion 'Öffnen' erstellen, 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', welche die Aktion Xwud einem bestimmten Element 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. Die Definition befindet sich in der Datenbankkonfigurationdatei /usr/dt/appconfig/types/C/xclients.dt.
ACTION Open { LABEL Open ARG_TYPE XWD TYPE MAP MAP_ACTION Xwud }
Das Feld TYPE gibt an, daß es sich um eine Zuordnungsaktion (map) handelt. Das Feld MAP_ACTION gibt an, daß diese Aktion die Aktion Xwud ausführt. Im Feld ARG_TYPE wird angegeben, daß diese Aktion nur auf Dateien des Datentyps XWD angewendet wird.
Vergleichen Sie die vorherige Definition der Aktion 'Öffnen' mit der folgenden Definition, die in der Datenbankdatei /usr/dt/appconfig/types/C/dt.dt angezeigt wird.
ACTION Open { LABEL Open 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.
Das Verhalten des Datentyps bei Doppelklicken wird durch den ersten Eintrag im Feld ACTIONS angegeben. Beispielsweise wird beim Datentyp XWD durch Doppelklicken die Aktion 'Öffnen' ausgeführt, die wiederum die Aktion Xwud ausführt.
Übergibt der Benutzer eine Datendatei an ein Aktionssymbol, führt das System die Aktion aus und verwendet diese Datendatei als Argument für die Aktion. (Weitere Informationen finden Sie im Abschnitt "Wie Aktionen Datendateien als Argumente verwenden").
Wird beispielsweise eine XWD-Datendatei an das 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.
Folgende Möglichkeiten stehen zur Verfügung, um eine Datendatei über das Desktop 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 zu dieser Druckoption besteht in vielen Anwendungen die Möglichkeit, über die jeweilige Anwendung zu drucken.
Beim Drucken über das 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 wird bei der Aktion 'Drucken' die Aktionszuordnung und das Feld ARG_TYPE verwendet, um das Drucken für jeden einzelnen Datentyp anzupassen.
Im folgenden Beispiel wird die Aktion 'Drucken' für den XWD-Datentyp dargestellt. Die Definition befindet sich in /usr/dt/appconfig/types/Sprache/xclients.dt:
ACTION Print { LABEL Print ARG_TYPE XWD TYPE MAP MAP_ACTION NoPrint }
Die Aktion 'Drucken', die speziell für XWD-Dateien zur Verfügung steht, wird zu einer Aktion 'NoPrint' zugeordnet. Bei '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.
Vergleichen Sie die XWD-Aktion 'Drucken' mit der folgenden Aktion 'Drucken' für PCL-Dateien:
ACTION Print { LABEL Print ARG_TYPE PCL TYPE MAP MAP_ACTION PrintRaw }
Die Aktion 'PrintRaw', die in der Konfigurationsdatei /usr/dt/appconfig/types/Sprache/print.dt festgelegt wurde, enthält die Befehlszeile zum Drucken der PCL-Dateien.
ACTION PrintRaw { TYPE COMMAND WINDOW_TYPE NO_STDIO EXEC_STRING /usr/dt/bin/dtlp -w %(File)Arg_1% }