Es gibt zwei Möglichkeiten, Aktionen zu erstellen:
Mit der Desktop-Anwendung 'Aktion erstellen'.
Durch das manuelle Erstellen einer Aktionsdefinition.
Um eine Aktion manuell zu erstellen, müssen Sie eine Datenbankdatei bearbeiten. Dieses Kapitel beschreibt, wie Aktionsdefinitionen manuell erstellt werden.
Fensterunterstützung und Terminal-Emulatoren für COMMAND-Aktionen
Aktionen erstellen, die Anwendungen auf entfernten Systemen ausführen
Eine Einführung in die Arbeit mit Aktionen finden Sie in Kapitel 10.
Informationen über die Anwendung 'Aktion erstellen' finden Sie in Kapitel 11.
Referenzinformationen zu Aktionsdefinitionen können Sie der Hilfeseite dtactionfile(4) entnehmen.
Es gibt drei verschiedene Aktionstypen:
COMMAND
MAP
TT_MSG
Mit dem Werkzeug 'Aktion erstellen' können bestimmte Arten von COMMAND- und MAP-Aktionen erstellt werden. Alle TT_MSG-Aktionen müssen manuell erstellt werden.
Weitere Informationen finden Sie im Abschnitt Einschränkungen von 'Aktion erstellen'.
Eine Befehlsaktion führt einen Befehl aus, der eine Anwendung oder ein Hilfsprogramm startet, ein Shell-Skript ausführt oder einen Betriebssystembefehl aufruft. Die Definition der Aktion besteht aus dem auszuführenden Befehl (EXEC_STRING).
Mit dem Werkzeug 'Aktion erstellen' können die am häufigsten verwendeten Befehlsaktionen erstellt werden. Es gibt jedoch Situationen, in denen eine COMMAND-Aktion manuell erstellt werden muß. Dies trifft in folgenden Fällen zu:
Es werden mehrere Dateien mit jeweils eigener Eingabeaufforderung als Argument angegeben.
In der Aktion werden andere Aktionen aufgerufen.
Die Aktion führt je nach Anzahl der Dateiargumente unterschiedliche Funktionen durch.
Eine Anwendung wird auf einem anderen System als dem mit der Aktionsdefinition ausgeführt (Fernausführung).
Die Aktion wird für einen anderen Benutzer ausgeführt (um beispielsweise das Root-Paßwort abzufragen und als Benutzer 'Root' auszuführen).
Bei einer Zuordnungsaktion wird eine Aktion einer anderen Aktion "zugeordnet“, anstatt direkt einen Befehl oder eine ToolTalk-Meldung anzugeben.
Die Zuordnung ermöglicht es dem Benutzer, alternative Namen für Aktionen anzugeben. So startet beispielsweise eine integrierte Befehlsaktion mit dem Namen 'IconEditor' den Symboleditor. Die Datenbank enthält auch eine Öffnen-Aktion, die in der Definition auf Bitmap- und Pixmap-Dateien (im Feld ARG_TYPE) beschränkt und der Aktion 'IconEditor' zugeordnet ist. So kann der Benutzer den Symboleditor starten, indem eine Bitmap- oder Pixmap-Datei im Dateimanager ausgewählt und dann 'Öffnen' im Menü 'Ausgewählt' gewählt wird.
Die Anwendung 'Aktion erstellen' ermöglicht eine eingeschränkte Zuordnung für die Aktionen 'Öffnen' und 'Drucken'. Alle anderen Zuordnungsaktionen müssen manuell erstellt werden.
TT_MSG-Aktionen senden eine ToolTalk-Nachricht. Alle TT_MSG-Aktionen müssen manuell erstellt werden.
In diesem Abschnitt wird erläutert, wie eine Konfigurationsdatei für eine Aktionsdefinition erstellt wird.
Konfigurationsdateien mit Aktionsdefinitionen müssen folgende Bedingungen erfüllen:
Die Dateien müssen die Namenskonvention name.dt verwenden.
Die Dateien müssen sich im Datenbanksuchpfad (Aktionen und Datentypen) befinden. Folgender Standardsuchpfad wird verwendet:
Persönliche Aktionen - Home-Verzeichnis/.dt/types
Systemweite Aktionen - /etc/dt/appconfig/types/Sprache
Integrierte Aktionen - /usr/dt/appconfig/types/Sprache. Dieses Verzeichnis sollte nicht verwendet werden.
Informationen über das Ändern des Suchpfads für Aktionen und Datentypen finden Sie im Abschnitt Wert eines Suchpfads setzen.
Öffnen Sie eine vorhandene Datenbankdatei, oder erstellen Sie eine neue Datei.
Informationen finden Sie im vorhergehenden Abschnitt Konfigurationsdateien für Aktionen.
Erstellen Sie die Aktionsdefinition mit folgender Syntax:
ACTION Aktionsname { TYPE Aktionstyp Aktionsfeld … }
Die einzelnen Parameter können folgendermaßen belegt werden:
Aktionsname - Der Name, mit dem die Aktion ausgeführt wird.
Aktionstyp - COMMAND (Standardwert), MAP oder TT_MSG.
Aktionsfeld - Eines der erforderlichen oder optionalen Felder für diesen Aktionstyp. Alle Felder bestehen aus einem Schlüsselwort und einem Wert.
Viele dieser Aktionsfelder werden in diesem Kapitel beschrieben. Weitere Informationen finden Sie auf der Hilfeseite dtactionfile(4).
Speichern Sie die Datei.
Soll das Aktionssymbol eine eindeutige Grafik verwenden, erstellen Sie die Symbole für die Aktion. Die Symbole befinden sich normalerweise in folgendem Verzeichnis:
Persönliche Symbole: Home-Verzeichnis/.dt/icons
Systemweite Symbole: /etc/dt/appconfig/icons/sprache. Der Standardwert für sprache ist C.
Weitere Informationen finden Sie im Abschnitt Das Symbol für eine Aktion festlegen.
Doppelklicken Sie auf 'Aktionen neu laden' in der Anwendungsgruppe 'Desktop-Anwendungen'.
Erstellen Sie eine Aktionsdatei für die Aktion. Diese Datei erstellt für die Aktion ein Symbol im Dateimanager oder Anwendungsmanager (wird mit der Aktion eine Anwendung gestartet, heißt das Symbol Anwendungssymbol).
To create the action file, create an executable file with the same name as action_name. Sie können die Datei in jedes Verzeichnis einfügen, für das Sie Schreiberlaubnis haben. Es können beliebig viele Aktionsdateien erstellt werden.
In diesem Beispiel wird eine persönliche Aktion erstellt, mit der eine Fax-Anwendung auf dem entfernten System AppServerA gestartet werden kann. Der Befehl zum Starten der Fax-Anwendung lautet:
/usr/fax/bin/faxcompose [Dateiname]
Erstellen Sie die Datei Home-Verzeichnis/.dt/types/Fax.dt.
Fügen Sie die folgenden Aktionsdefinitionen in die Datei ein:
ACTION FaxComposer { TYPE COMMAND ICON fax WINDOW_TYPE NO_STDIO EXEC_STRING /usr/fax/bin/faxcompose -c %Arg_1% EXEC_HOST AppServerA DESCRIPTION Startet das Faxprogramm
}
Die Felder WINDOW_TYPE und EXEC_STRING beschreiben die Funktionsweise der Aktion.
WINDOW_TYPE - Das Schlüsselwort NO_STDIO legt fest, daß die Aktion nicht in einem Terminalemulationsfenster ausgeführt werden muß.
Weitere Informationen finden Sie im Abschnitt Fensterunterstützung für die Aktion festlegen.
EXEC_STRING - Die Syntax %Arg_1% akzeptiert eine übergebene Datei. Beim Doppelklicken auf das Aktionssymbol wird ein leeres Faxfenster geöffnet.
Weitere Informationen finden Sie im Abschnitt Ausführungszeichenfolge für eine COMMAND-Aktion erstellen.
Speichern Sie die Datei.
Erstellen Sie mit dem Symboleditor die folgenden Symboldateien im Verzeichnis Home-Verzeichnis/.dt/icons:
fax.m.pm, Größe 32 x 32 Pixel
fax.t.pm, Größe 16 x 16 Pixel
Doppelklicken Sie auf 'Aktionen neu laden' in der Anwendungsgruppe 'Desktop-Anwendungen'.
Erstellen Sie eine ausführbare Datei mit dem Namen FaxComposer in einem Verzeichnis, für das Sie über Schreiberlaubnis verfügen (zum Beispiel in Ihrem Home-Verzeichnis).
Das Beispiel setzt voraus, daß die meisten zu faxenden Dateien mit dem Texteditor erstellt werden und den Datentyp TEXTFILE (Dateien mit dem Namen *.txt) aufweisen.
Mit den folgenden Arbeitsschritten wird der Menüpunkt 'Fax' dem Menü 'Ausgewählt' des Datentyps hinzugefügt.
Öffnen Sie die im letzten Beispiel erstellte Datei Home-Verzeichnis/.dt/types/Fax.dt.
Fügen Sie folgende Zuordnungsdefinition hinzu:
ACTION Fax { ARG_TYPE TEXTFILE TYPE MAP MAP_ACTION FaxComposer }
Speichern Sie die Datei.
Kopieren Sie die Datenattributdefintion für TEXTFILE aus dem Verzeichnis /usr/dt/appconfig/types/Sprache/dtpad.dt in eine neue Datei Home-Verzeichnis/.dt/types/textfile.dt. Fügen Sie die Aktion 'Fax' dem Feld ACTIONS hinzu.
DATA_ATTRIBUTES TEXTFILE { ACTIONS Open,Print,Fax ICON Dtpenpd … }
Speichern Sie die Datei.
Den Anwendungsmanager öffnen und auf 'Aktionen erneut starten' in der Anwendungsgruppe `Desktop-Anwendungen' doppelklicken.
Damit neue oder bearbeitete Aktionsdefinitionen wirksam werden, muß die Datenbank erneut gelesen werden.
Öffnen Sie die Anwendungsgruppe 'Desktop-Anwendungen', und doppelklicken Sie auf 'Aktionen neu laden'.
Oder führen Sie den folgenden Befehl aus:
dtaction ReloadActions
'ReloadActions' ist der Name der Aktion mit dem Symbol 'Aktionen neu laden'.
Die Datenbank wird auch erneut gelesen, wenn der Benutzer folgende Vorgänge durchführt:
Anmelden
Neustarten des Workspace Manager
Speichern einer Aktion mit dem Befehl 'Speichern' im Menü 'Datei' des Fensters 'Aktion erstellen'.
Eine Aktionsdatei ist eine sichtbare Repräsentation der Aktion im Dateimanager oder Anwendungsmanager.
Da das Symbol einer Aktionsdatei eine Aktion repräsentiert, wird es manchmal als Aktionssymbol bezeichnet. Wird durch die Aktion eine Anwendung gestartet, nennt man das Symbol Anwendungssymbol.
Durch Doppelklicken auf das Aktionssymbol wird die Aktion ausgeführt. Das Aktionssymbol kann auch eine Ablegezone sein.
Erstellen Sie eine ausführbare Datei mit dem Namen der Aktion. Der Inhalt der Datei ist nicht von Bedeutung.
Ein Beispiel: Die Aktion ist folgendermaßen definiert:
ACTIONMeineAnwendung { EXEC_STRING Mfa -file %Arg_1% DESCRIPTION Startet MeineAnwendung ICON Mfapp }
Die Aktionsdatei ist dann eine ausführbare Datei mit dem Namen MeineAnwendung. Im Dateimanager und im Anwendungsmanager wird dann für die Datei MeineAnwendung das Symbol MfappGröße.Typ verwendet. Durch Doppelklicken auf das Symbol MeineAnwendung wird die Ausführungszeichenfolge ausgeführt. Als Online-Hilfe des Symbols wird der Inhalt des Feldes DESCRIPTION angezeigt ("Startet MeineAnwendung“).
Enthält die Aktionsdefinition das Feld LABEL, erhält die Aktionsdatei im Dateimanager und im Anwendungsmanager den Inhalt dieses Feldes als Beschriftung und nicht den Dateinamen (Aktionsname). Enthält die Aktionsdefinition beispielsweise die Zeile
ACTIONMeineAnwendung { LABEL Bevorzugte Anwendung … }
hat das Aktionssymbol die Beschriftung "Bevorzugte Anwendung“.
Über das Feld ICON können Sie das Symbol angeben, das im Dateimanager und im Anwendungsmanager für die Aktion verwendet wird.
Geben Sie kein Symbol an, werden die Standardsymboldateien für Aktionssymbole verwendet (/usr/dt/appconfig/icons/Sprache/Dtactn.*).
Das Standardsymbol einer Aktion kann mit folgender Ressource geändert werden:
*actionIcon: Symbol_Dateiname
Der Parameter Symbol-Dateiname kann als Basisdateiname oder als absoluter Pfad angegeben werden.
Das Feld ICON kann folgende Werte annehmen:
einen Basisdateinamen
Der Basisdateiname ist der Name der Datei mit der Symbolgrafik ohne die Erweiterungen für Größe (m und t) und Grafiktyp (bm und pm). ). Verwenden Sie beispielsweise für die Dateien GameIcon.m.pm und GameIcon.t.pm den Basisnamen GameIcon.
Wird der Dateiname ohne Pfad verwendet, müssen die Symboldateien in ein Verzeichnis im Symbolsuchpfad gestellt werden:
Persönliche Symbole: Home-Verzeichnis/.dt/icons
Systemweite Symbole: /etc/dt/appconfig/icons/Sprache
Absoluter Pfad der Symboldatei (einschließlich des vollständigen Dateinamens)
Der absolute Pfad sollte nur verwendet werden, wenn die Symboldatei sich nicht im Symbolsuchpfad befindet. Befindet sich beispielsweise die Symboldatei GameIcon.m.pm im Verzeichnis /doc/projects, das nicht im Symbolsuchpfad enthalten ist, lautet der Wert im Feld ICON /doc/projects/GameIcon.m.pm.
Tabelle 12–1 enthält eine Liste mit Symbolgrößen, die der Benutzer erstellen sollte, und die zugehörigen Dateinamen.
Größe in Pixel |
Bitmap-Name |
Pixmap-Name |
---|---|---|
48 x 48 |
Name.l.bm |
Name.l.pm |
32 x 32 |
Name.m.bm |
Name.m.pm |
16 x 16 |
Name.t.bm |
Name.t.pm |
Sie können alle im System verfügbaren Aktionen einschließlich der integrierten Aktionen ändern.
Gehen Sie beim Ändern der integrierten Aktionen vorsichtig vor. Sie sind genau auf die Zusammenarbeit mit den Desktop-Anwendungen abgestimmt.
Suchen Sie die Definition der zu ändernden Aktion.
Die Aktionsdefinitionen befinden sich in folgenden Standardverzeichnissen:
Integrierte Aktionen: /usr/dt/appconfig/types/Sprache
Systemweite Aktionen: /etc/dt/appconfig/types/Sprache
Persönliche Aktionen: Home-Verzeichnis/.dt/types
Es können auch weitere Verzeichnisse im System definiert sein. Eine Liste der für Aktionen verwendeten Verzeichnisse erhalten Sie mit dem Befehl:
dtsearchpath -v
Das System verwendet die unter DTDATABASESEARCHPATH aufgeführten Verzeichnisse.
Kopieren Sie gegebenenfalls den Text der Aktionsdefinition in eine neue oder bereits vorhandene Datei in einem der folgenden Verzeichnisse:
Systemweite Aktionen: /etc/dt/appconfig/types/Sprache
Persönliche Aktionen: Home-Verzeichnis/.dt/types
Integrierte Aktionen müssen zunächst kopiert werden, da Dateien im Verzeichnis /usr/dt/appconfig/types/Sprache nicht bearbeitet werden sollten.
Bearbeiten Sie die Aktionsdefinition.
Speichern Sie anschließend die Datei.
Doppelklicken Sie auf 'Aktionen neu laden' in der Anwendungsgruppe 'Desktop-Anwendungen'.
Ruft der Benutzer eine Aktion auf, durchsucht das System die Datenbank nach dem betreffenden Aktionsnamen. Ist mehr als eine Aktion mit diesem Namen vorhanden, beachtet das System bestimmte Regeln, um die zu verwendende Aktion zu bestimmen.
Werden keine anderen Regeln angewendet, ist die Position der Definitionen entscheidend. In der folgenden Liste sind die Aktionen entsprechend der Vorrangsregeln von oben nach unten angeordnet:
Persönliche Aktionen (Home-Verzeichnis/.dt/types)
Systemweite lokale Aktionen (/etc/dt/appconfig/types/Sprache)
Systemweite entfernte Aktionen (Rechnername:/etc/dt/appconfig/types/Sprache). Bei den durchsuchten entfernten Rechnern handelt es sich um die im Anwendungssuchpfad aufgelisteten Rechner.
Integrierte Aktionen (/usr/dt/appconfig/types/Sprache)
In einem vorhandenen Verzeichnis werden die *.dt-Dateien in alphabetischer Reihenfolge gelesen.
Aktionen, die durch die Felder ARG_CLASS, ARG_TYPE, ARG_MODE und ARG_COUNT beschränkt sind, haben Vorrang vor den nicht beschränkten Aktionen (der Standardwert für diese vier Felder lautet *.)
Bei mehreren Beschränkungen lautet die Rangfolge von oben nach unten:
ARG_CLASS
ARG_TYPE
ARG_MODE
ARG_COUNT
Sind mehrere einschränkende ARG_COUNT-Felder vorhanden, lautet die Rangfolge von oben nach unten:
Spezifischer ganzzahliger Wert n
<n
>n
*
Im folgenden Beispiel sind Abschnitte verschiedener Aktionsdefinitionen aufgeführt:
ACTION EditGraphics # EditGraphics-1 { ARG_TYPE XWD … }
ACTION EditGraphics # EditGraphics-2 { ARG_COUNT 0 … }
ACTION EditGraphics # EditGraphics-3 { ARG_TYPE * … }
Durch das Doppelklicken auf das Aktionssymbol 'EditGraphics' wird EditGraphics-2 gestartet, da kein Argument angegeben ist und ARG_COUNT 0 Vorrang hat. Wird ein Dateiargument des Typs XWD angegeben, wird EditGraphics-1 verwendet, da hier XWD ARG_TYPE angegeben ist. EditGraphics-3 wird für alle anderen Dateiargumente verwendet.
Bei einer COMMAND-Aktion müssen mindestens zwei Felder angegeben werden - ACTION und EXEC_STRING.
ACTION Aktionsname { EXEC_STRING Ausführungszeichenfolge }
Die Ausführungszeichenfolge ist der wichtigste Teil einer COMMAND-Aktionsdefinition. Die verwendete Syntax entspricht der Befehlszeile in einem Terminal-Fenster, enthält aber zusätzliche Elemente für Datei- und Zeichenfolgenargumente.
Ausführungszeichenfolgen können folgendes enthalten:
Dateiargumente und andere Parameter
Shell-Syntax
Absolute Pfade oder Namen ausführbarer Dateien
Bei einem Argument handelt es sich um Informationen, die von einem Befehl oder einer Anwendung für die Ausführung benötigt werden. So kann beispielsweise mit der folgenden Befehlszeile eine Datei im Texteditor geöffnet werden:
dtpad Dateiname
In diesem Befehl ist Dateiname ein Dateiargument für den Befehl dtpad.
Aktionen können wie Anwendungen und Befehle mit Argumenten aufgerufen werden. Bei einer COMMAND-Aktion können dabei zwei Arten von Daten verwendet werden:
Dateien
Zeichenfolgen
Die Ausführungszeichenfolge wird direkt und nicht durch eine Shell ausgeführt. Es kann jedoch explizit eine Shell in der Ausführungszeichenfolge aufgerufen werden.
Beispiel:
EXEC_STRING \ /bin/sh -c \ 'tar -tvf %(File)Arg_1% 2>&1 | \${PAGER:-more};\ echo "\\n*** Zum Schließen im Menü 'Fenster' die Option 'Schließen' wählen ***"'
Befindet sich die Anwendung in einem Verzeichnis, das in der PATH-Variablen aufgeführt ist, muß nur der Name der ausführbaren Datei angegeben werden. Ist das Verzeichnis nicht im Pfad enthalten, muß der absolute Pfadname der ausführbaren Datei verwendet werden.
Verwenden Sie für EXEC_STRING dieselbe Syntax wie für den Start der Anwendung von der Befehlszeile.
Die folgende Ausführungszeichenfolge gehört zu einer Aktion, die den X-Client xcutsel startet.
EXEC_STRING xcutsel
Die nächste Zeichenfolge startet den Client xclock mit einer Digitaluhr. Die Befehlszeile enthält eine Befehlszeilenoption, aber es werden keine Argumente benötigt.
EXEC_STRING xclock -digital
Verwenden Sie für das Dateiargument folgende Syntax:
%Arg_n%
oder
%(File)Arg_n%
(File) ist optional, da an Arg_n übergebene Werte standardmäßig als Dateien betrachtet werden. (Siehe auch Ein Dateiargument als Zeichenfolge interpretieren zur Verwendung der %(String)Arg_ n%-Syntax.)
Mit dieser Syntax kann der Benutzer ein Dateiobjekt auf dem Aktionssymbol ablegen, um die Aktion mit dem übergebenen Dateiargument zu starten. Dabei wird das nte Argument in die Befehlszeile übernommen. Die Datei kann sich auf dem lokalen oder auf einem entfernten System befinden.
Die folgende Ausführungszeichenfolge führt wc -S aus. Dabei wird eine abgelegte Datei im Parameter -load verwendet.
EXEC_STRING wc -w %Arg_1%
Im folgenden Beispiel können nur Verzeichnisargumente verwendet werden. Wird ein Verzeichnis auf dem Aktionssymbol abgelegt, zeigt die Aktion eine Liste aller Dateien im Verzeichnis an, für die Lese-/Schreibzugriffsrechte vorliegen.
ACTION Beschreibbare_Dateien_anzeigen { ARG_TYPE FOLDER EXEC_STRING /bin/sh -c 's -l %Arg_1% | grep rw-' … }
Verwenden Sie für das Dateiargument folgende Syntax:
%(File)"Eingabeaufforderung"%
Mit dieser Syntax wird eine Aktion erstellt, die eine Aufforderung zur Eingabe eines Dateinamens anzeigt, sobald der Benutzer auf das Aktionssymbol doppelklickt.
So zeigt beispielsweise folgende Ausführungszeichenfolge ein Dialogfeld an, in dem der Benutzer zur Eingabe des Dateiarguments für den Befehl wc -S aufgefordert wird:
EXEC_STRING wc -w %(File)"Wörter zählen in Datei:"%
Verwenden Sie für das Dateiargument folgende Syntax:
%Arg_n"Eingabeaufforderung"%
oder
%(File)Arg_n"Eingabeaufforderung"%
Mit dieser Syntax wird eine Aktion erstellt, die
eine abgelegte Datei als Argument akzeptiert oder
ein Dialogfeld mit einer Aufforderung zur Eingabe eines Dateinamens anzeigt, sobald der Benutzer auf das Aktionssymbol doppelklickt.
So führt beispielsweise diese Ausführungszeichenfolge den Befehl lp -oraw für die abgelegte Datei aus. Wird die Aktion durch Doppelklicken auf das Symbol gestartet, erscheint ein Dialogfeld mit einer Aufforderung zur Eingabe des Dateinamens.
EXEC_STRING lp -oraw %Arg_1"Zu druckende Datei:"%
Verwenden Sie für Nicht-Dateiargumente folgende Syntax:
%"Eingabeaufforderung"%
oder
%(String)"Eingabeaufforderung"%
(String) muß nicht angegeben werden, da in Anführungszeichen gesetzter Text standardmäßig als Zeichenfolge interpretiert wird. Mit dieser Syntax wird ein Dialogfeld angezeigt, in dem der Benutzer zur Eingabe aufgefordert wird. Verwenden Sie die Syntax nicht, um den Benutzer zur Eingabe eines Dateinamens aufzufordern.
Im folgenden Beispiel wird der Befehl xwd ausgeführt. Er fordert zur Eingabe eines Werts auf, der jedem Pixel hinzugefügt wird:
EXEC_STRING xwd -add %"Wert eingeben:"% -out %Arg_1"Dateiname:"%
Verwenden Sie für das Argument folgende Syntax:
%(String)Arg_n%
So druckt beispielsweise folgende Ausführungszeichenfolge mit dem Befehl lp -tDeckblatt_Dateiname eine Datei mit einem Deckblatt, das den Dateinamen enthält:
EXEC_STRING lp -t%(String)Arg_1% %(File)Arg_1"Zu druckende Datei:"%
Geben Sie die Shell folgendermaßen in der Ausführungszeichenfolge an:
/bin/sh -c 'Befehl' /bin/ksh -c 'Befehl' /bin/csh -c 'Befehl'
Das folgende Beispiel zeigt den Einsatz des Shell-Piping in einer Aktion.
EXEC_STRING /bin/sh -c 'ps | lp'
In diesem Beispiel wird eine komplexere Ausführungszeichenfolge verwendet, die eine Shell-Verarbeitung voraussetzt und ein Dateiargument akzeptiert.
EXEC_STRING /bin/sh -c 'tbl %Arg_1"Hilfeseite:"% | troff -man'
Die folgende Ausführungszeichenfolge benötigt als Argument eine komprimierte Datei. Die Aktion dekomprimiert die Datei und druckt sie mit dem Befehl lp -oraw.
EXEC_STRING /bin/sh -c 'cat %Arg_1 "Zu druckende Datei:"% | \ uncompress | lp -oraw'
Die folgende Ausführungszeichenfolge startet ein Shell-Skript.
EXEC_STRING /usr/local/bin/StartGnuClient
Aktionen können mehrere Dateiargumente auf drei verschiedene Arten bearbeiten:
Die Aktion wird für jedes Argument einmal ausgeführt. Enthält das Feld EXEC_STRING nur ein Dateiargument und werden mehrere Dateiargumente durch Ablegen an das Aktionssymbol übergeben, wird die Aktion für jedes Dateiargument separat ausgeführt.
Werden beispielsweise bei folgender Aktionsdefinition mehrere Dateiargumente angegeben:
ACTION DisplayScreenImage { EXEC_STRING xwud -in %Arg_1% … }
wird die Aktion 'DisplayScreenImage' mehrmals ausgeführt.
Die Aktion verwendet mindestens zwei nicht austauschbare Dateiargumente. Beispiel:
xsetroot -cursor Cursordatei Maskendatei
setzt zwei eindeutige Dateien in der angegebenen Reihenfolge voraus.
Die Aktion führt denselben Befehl nacheinander für alle übergebenen Dateiargumente aus. Beispiel:
pr Datei [Datei …]
druckt eine oder mehrere Dateien in einem Druckauftrag.
Verwenden Sie eine der folgenden Syntaxkonventionen:
Soll zur Eingabe der Dateinamen aufgefordert werden, verwenden Sie für jedes Dateiargument folgende Syntax:
%(File)"Eingabeaufforderung"%
Verwenden Sie für jedes Argument eine andere Eingabeaufforderung.
So fordert beispielsweise folgende Ausführungszeichenfolge zur Eingabe zweier Dateinamen auf:
EXEC_STRING xsetroot -cursor %(File)"Cursor-Bitmap:"% \ %(File)"Masken-Bitmap:"%
Sollen abgelegte Dateien akzeptiert werden, verwenden Sie folgende Syntax:
%Arg_n%
Dabei werden unterschiedliche n-Werte für jedes Argument verwendet. Beispiel:
EXEC_STRING diff %Arg_1% %Arg_2%
Verwenden Sie eine der folgenden Syntaxkonventionen:
Um eine Aktion zu erstellen, die abgelegte Dateien akzeptiert und einen Befehl der Form Befehl Datei 1 Datei 2 … ausführt, verwenden Sie folgende Syntax für die Dateiargumente:
%Args%
Soll eine Aktion erstellt werden, die mehrere abgelegte Dateien akzeptiert oder bei einem Doppelklick eine Aufforderung zur Eingabe eines Dateinamens anzeigt, verwenden Sie folgende Syntax für die Dateiargumente:
%Arg_1"Eingabeaufforderung"% %Args%
Die Aktion gibt einen Befehl der Form Befehl Datei 1 Datei 2 … aus.
Die folgende Ausführungszeichenfolge erstellt eine Aktion, die den Befehl
pr Datei 1 Datei 2
mit mehreren Dateiargumenten ausführt.
EXEC_STRING pr %Args%
Die folgende Ausführungszeichenfolge erstellt eine ähnliche Aktion wie im vorhergehenden Beispiel. Jedoch wird hier eine Eingabeaufforderung angezeigt, sobald auf das Aktionssymbol doppelgeklickt wird (keine Dateiargumente).
EXEC_STRING pr %Arg_1"Zu druckende Datei(en):"% %Args%
Um das Ablegen mehrerer Dateien zu akzeptieren und einen Befehl der Form
Befehl Datei 1 Datei 2 …
auszuführen, verwenden Sie folgende Syntax:
%Args%
Die folgende Ausführungszeichenfolge startet das Skript 'Checkout' für mehrere Dateien:
EXEC_STRING /usr/local/bin/Checkout \ %Arg_1"Welche Datei?"% %Args%
In diesem Beispiel wird der Befehl lp -oraw mit mehreren Dateien ausgeführt:
EXEC_STRING lp -oraw %Arg_1"Zu druckende Datei:"% %Args%
Es gibt mehrere Möglichkeiten für die Fensterunterstützung auf dem Desktop durch COMMAND-Aktionen.
Hat die Anwendung ein eigenes Fenster, muß in der Aktion keine weitere Fensterunterstützung zur Verfügung gestellt werden. Diese Option wird auch verwendet, wenn eine Aktion einen Befehl ohne direkte Benutzereingabe und ohne Ausgaben ausführt.
Muß die Anwendung in einem Terminal-Emulatorfenster ausgeführt werden, kann mit der Aktion ein Fenster geöffnet und dann die Anwendung gestartet werden. Es stehen verschiedene Terminal-Optionen zur Verfügung.
Verwenden Sie das Feld WINDOW_TYPE, um die Art der Fensterunterstützung für die Aktion festlegen (siehe Tabelle 12–2.)
Tabelle 12–2 WINDOW_TYPE-Feld und die bereitgestellte Fensterunterstützung
Bereitgestellte Fensterunterstützung |
|
---|---|
Keine. Verwenden Sie NO_STDIO, wenn die Anwendung über ein eigenes Fenster verfügt oder der Befehl keine sichtbare Ausgabe hat. |
|
Permanentes Terminal-Emulatorfenster. Die Aktion öffnet ein Terminal-Fenster, das geöffnet bleibt, bis es vom Benutzer geschlossen wird. In das Fenster können Daten eingegeben werden. Verwenden Sie diesen Typ für Befehle, die Eingaben entgegennehmen, Ausgaben erzeugen und dann beendet werden (z. B. ls Verzeichnis). |
|
Temporäres Terminal-Emulatorfenster. Die Aktion öffnet ein Terminal-Fenster, das sofort nach Beendigung des Befehls wieder geschlossen wird. Verwenden Sie diesen Typ für Befehle, die den ganzen Bildschirm nutzen (z. B. vi). |
Verwenden Sie das Feld TERM_OPTS in der Aktionsdefinition, um die Befehlszeilenoptionen für den Terminal-Emulator anzugeben.
Die folgende Aktion fordert beispielsweise zur Angabe des Ausführungs-Hosts auf:
ACTION OpenTermOnSystemUserChooses { WINDOW_TYPE PERM_TERMINAL EXEC_HOST %(String)"Entferntes Terminal auf:"% TERM_OPTS -title %(String)"Fenstertitel:"% EXEC_STRING $SHELL }
Der von Aktionen verwendete Standard-Emulator ist dtterm. Sie können aber auch einen anderen Terminal-Emulator wählen. Der Standard-Emulator wird automatisch verwendet, wenn in der Aktion nicht explizit ein bestimmter Terminal-Emulator angegeben wird.
Für den von einer Aktion verwendeten Terminal-Emulator müssen folgende Befehlszeilenoptionen angegeben werden:
-title Fenstertitel
-e Befehl
Der Standard-Terminal-Emulator für Aktionen wird durch zwei Ressourcen bestimmt:
Das Feld localTerminal gibt den von lokalen Anwendungen verwendeten Terminal-Emulator an.
*localTerminal: Terminal
Beispiel:
*localTerminal: xterm
Das Feld remoteTerminal gibt den von Anwendungen auf entfernten Rechnern verwendeten Terminal-Emulator an.
*remoteTerminal: Host:Terminal [,Host:Terminal…]
Beispiel:
*remoteTerminal: sysibm1:/usr/bin/xterm,syshp2:/usr/bin/yterm
Durch das Beschränken auf einen bestimmten Argumenttyp ist eine genauere Definition einer Aktion möglich. So sollte beispielsweise eine Aktion auf PostScript-Dateiargumente beschränkt werden, wenn sie ein Anzeigeprogramm für PostScript-Dateien aufruft. Die Aktion zeigt eine Fehlermeldung an, wenn eine Datei angegeben wird, die nicht das PostScript-Format aufweist.
Aktionen können anhand folgender Bedingungen eingeschränkt werden:
Datentyp des Dateiarguments.
Anzahl der Dateiargumente (z. B. kein Argument im Gegensatz zu einem oder mehreren Argumenten). Auf diese Weise können beim Ablegen oder Doppelklicken auf ein Aktionssymbol verschiedene Funktionsweisen implementiert werden.
Lese-/Schreibmodus des Arguments.
Verwenden Sie das Feld ARG_TYPE zum Festlegen der Datentypen, für die die Aktion gültig ist. Verwenden Sie den Datenattributnamen.
Sie können eine Liste mit Datentypen angeben. Trennen Sie die Einträge durch Kommata voneinander.
Die folgende Aktionsdefinition geht beispielsweise davon aus, daß ein GIF-Datentyp erstellt worden ist:
ACTION Open_Gif { TYPE COMMAND LABEL " GIF anzeigen" WINDOW_TYPE NO_STDIO ARG_TYPE Gif ICON xgif DESCRIPTION Zeigt GIF-Dateien an EXEC_STRING xgif }
Verwenden Sie das Feld ARG_COUNT, um die Anzahl der Argumente für die Aktion festlegen. Folgende Werte können verwendet werden:
* (Standard) - Beliebig viele Argumente. Alle anderen Werte haben Vorrang vor *.
n - Beliebige positive Ganzzahl (einschließlich 0).
>n - Mehr als n Argumente.
<n - Weniger als n Argumente.
Mit Hilfe von ARG_COUNT können abhängig davon, ob auf das Symbol doppelgeklickt oder eine Datei abgelegt wird, unterschiedliche Funktionsweisen für das Aktionssymbol implementiert werden. (siehe nächster Abschnitt "Unterschiedliche Funktionsweisen für Doppelklicken oder Ablegen implementieren“).
Eine Aktion, die eine abgelegte Datei akzeptiert, jedoch bei einem Doppelklick auf das Aktionssymbol keine Aufforderung zur Eingabe eines Dateinamens anzeigt, kann folgendermaßen erstellt werden.
Erstellen Sie eine Aktionsdefinition für einen Doppelklick auf das Symbol.
Verwenden Sie das Feld ARG_COUNT, um 0 Argumente anzugeben. Verwenden Sie eine Syntax für das Feld EXEC_STRING, die abgelegte Dateiargumente nicht akzeptiert.
Erstellen Sie eine zweite Aktionsdefinition für das Ablegen eines Arguments.
Verwenden Sie das Feld ARG_COUNT, um >0 Argumente anzugeben. Verwenden Sie eine Syntax für das Feld EXEC_STRING, die abgelegte Dateiargumente akzeptiert.
Ein Beispiel: Mit den folgenden beiden Befehlszeilen kann der Editor vedit gestartet werden:
Der folgende Befehl übergibt dem Editor als Argument eine Datei, die schreibgeschützt geöffnet wird:
vedit -R Dateiname
Die folgenden beiden Aktionen stellen die Ablegen- und Doppelklickfunktionalität für eine Aktion mit dem Namen 'Vedit' zur Verfügung. Die erste Aktion hat Vorrang, wenn die Datenbank nach einer Übereinstimmung durchsucht wird, da ARG_COUNT 0 spezifischer ist als das implizierte ARG_COUNT * der Definition für die Ablegefunktionalität.
# Doppelklicken ACTION Vedit { TYPE COMMAND ARG_COUNT 0 WINDOW_TYPE PERM_TERMINAL EXEC_STRING vedit } # Ablegen ACTION Vedit { TYPE COMMAND WINDOW_TYPE PERM_TERMINAL EXEC_STRING vedit -R %Arg_1% }
Verwenden Sie das Feld ARG_MODE, um den Lese-/Schreibmodus des Arguments anzugeben. Folgende Werte können verwendet werden:
* (Standard) - Beliebiger Modus
!w - Nicht schreibbar
w - Schreibbar
Wenn von Aktionen und Ausführung auf entfernten Systemen die Rede ist, werden zwei Begriffe häufig verwendet:
Datenbank-Host - Das System mit der Aktionsdefinition.
Ausführungs-Host - Das System mit der ausführbaren Datei.
Meistens befinden sich Aktionen und ihre Anwendungen auf demselben System. Da der Standard-Ausführungs-Host für eine Aktion der Datenbank-Host ist, ist keine spezielle Syntax erforderlich.
Handelt es sich jedoch bei Datenbank- und Ausführungs-Host um unterschiedliche Systeme, muß in der Aktionsdefinition angegeben werden, auf welchem Host die Ausführungszeichenfolge gestartet werden soll.
Die Fähigkeit, Aktionen und Anwendungen auf verschiedenen Systemen zu suchen, ist Bestandteil der Client/Server-Architektur des Desktop. Weiterführende Informationen zu Netzwerkanwendungen finden Sie im Abschnitt Anwendungs-Services verwalten.
Verwenden Sie das Feld EXEC_HOST in der Aktionsdefinition, um das Verzeichnis der Anwendung anzugeben.
Folgende Werte können für EXEC_HOST verwendet werden:
%DatabaseHost% - Der Host, auf dem die Aktion definiert ist.
%LocalHost% - Der Host, auf dem die Aktion aufgerufen wird (der Session-Server).
%DisplayHost% - Der Host, auf dem der X-Server läuft (nicht zulässig für X-Terminals).
%SessionHost% - Der Host, auf dem der kontrollierende Anmeldemanager ausgeführt wird.
Host-Name — der bezeichnete Host. Verwenden Sie diesen Wert für Umgebungen, in denen die Aktion immer auf einem bestimmten System ausgeführt werden soll.
%"Eingabeaufforderung"% - Fordert den Benutzer bei jeder Ausführung der Aktion zur Eingabe des Hostnamens auf.
Der Standardwert ist %DatabaseHost%, %LocalHost%. Die Aktion führt den Befehl zuerst auf dem Host mit der Aktionsdefinition aus, wenn das Feld EXEC_HOST nicht angegeben wird. Ist dies nicht möglich, führt die Aktion den Befehl auf dem Session-Server aus.
In diesem Beispiel wird der Benutzer aufgefordert, einen Hostnamen einzugeben:
EXEC_HOST %"Auf welchem Host befindet sich die Anwendung:"%
Im folgenden Beispiel wird festgelegt, daß die Aktion zuerst versuchen soll, die Anwendung auf dem System mit der Aktionsdefinition auszuführen. Ist das nicht möglich, wird versucht, die Anwendung auf folgendem Host auszuführen: ddsyd.
EXEC_HOST %DatabaseHost%, ddsyd
In Definitionsdateien für Aktionen und Datentypen können String- und Umgebungsvariablen verwendet werden.
Der Gültigkeitsbereich einer String-Variablen erstreckt sich von ihrer Definition bis zum Ende der Datei. Es gibt keine globalen String-Variablen für die Datenbank.
Sind eine String- und eine Umgebungsvariable mit demselben Namen vorhanden, wird die String-Variable verwendet.
Richten Sie sich nach folgender Syntax:
set Variablenname=Wert
Variablennamen können beliebige alphanumerische Zeichen und Unterstriche (_) enthalten. Jede Variable muß in einer eigenen Zeile definiert werden.
Beispiel:
set Remote_Application_Server=sysapp set Remote_File_Server=sysdata
Richten Sie sich nach folgender Syntax:
$[{]Variablenname[}]
Beispiel:
EXEC-HOST $Remote_Application_Server CWD /net/${Remote_File_Server}/doc/project
Mit folgender Syntax kann eine Umgebungsvariable referenziert werden:
$[{]Variable[}].
Die Variable wird beim Laden der Datenbank erweitert (durch ihren Wert ersetzt). Sind eine String- und eine Umgebungsvariable mit demselben Namen vorhanden, wird die String-Variable verwendet.
So druckt beispielsweise folgende Ausführungszeichenfolge eine Datei mit einem Deckblatt, das den Anmeldenamen enthält.
EXEC-STRING lp -t$LOGNAME %(File)Arg_1%
Das Desktop stellt den Befehl dtaction zur Verfügung, mit dem Aktionen an der Befehlszeile gestartet werden können. Aktionen können mit dtaction folgendermaßen ausgeführt werden:
In einem Skript
In einer anderen Aktion
In der Befehlszeile eines Terminal-Emulator-Fensters
dtaction [-user Benutzername] [-execHost Hostname] \ Aktionsname [Argument [Argument]…]
-user Benutzername - Ermöglicht das Ausführen der Aktion für einen anderen Benutzer. Wird dtaction von einem anderen Benutzer als Benutzername aufgerufen, wird eine Paßwortabfrage angezeigt.
-execHost Hostname - Diese Option wird nur für COMMAND-Aktionen verwendet und gibt den Host an, auf dem der Befehl ausgeführt wird.
Argument - Die Argumente für die Aktion (normalerweise Dateiargumente).
Der Client dtaction verfügt über weitere Befehlszeilenoptionen. Weitere Informationen können Sie der Hilfeseite dtaction(1) entnehmen.
Verwenden Sie dtaction im Feld EXEC_STRING der Aktion.
Die Aktion im folgenden Beispiel verwendet eine integrierte Aktion mit dem Namen 'Spell' (die Aktion hat im Anwendungsmanager die Bezeichnung 'Rechtschreibprüfung'). Die neue Aktion führt den Texteditor und die Aktion 'Spell' aus und zeigt die Rechtschreibfehler in einem separaten Terminal-Emulator-Fenster an.
ACTION EditAndSpell { WINDOW_TYPE NO_STDIO EXEC_STRING /bin/sh -c 'dtaction Spell \ %Arg_1"Datei:"%; dtpad %Arg_1%' }
Verwenden Sie folgende Syntax im Feld EXEC_STRING:
EXEC_STRING dtaction -user Benutzername Aktionsname [Dateiargument]
Der neue Benutzer (Benutzername) muß über einen der folgenden Mechanismen den Anzeigezugriff auf das System besitzen:
Leserecht für die Datei .Xauthority des angemeldeten Benutzers
Oder xhost-Rechte
So ermöglichen beispielsweise die folgenden beiden Aktionen dem Benutzer, sich als Root anzumelden und die Datei app-defaults zu bearbeiten.
ACTION AppDefaults { WINDOW_TYPE NO_STDIO EXEC_STRING /usr/dt/bin/dtaction -user root \ EditAppDefaults %Arg_1"Datei:"% } ACTION EditAppDefaults { WINDOW_TYPE TERMINAL EXEC_STRING /bin/sh -c 'chmod +w %Arg_1%; \ vi %Arg_1%; chmod -w %Arg_1%' }
Der Suchpfad für Datentypen enthält sprachenabhängige Positionen. Das Desktop verwendet den Wert von LANG, um festzulegen, welche Positionen nach Datentypdefinitionen durchsucht werden.
Länderspezifische Aktionsdefinitionen müssen sich in den richtigen sprachabhängigen Verzeichnissen des Aktionssuchpfads befinden.
Folgender Standardsuchpfad wird verwendet:
Persönliche Aktionen: Home-Verzeichnis/.dt/types
Systemweite Aktionen: /etc/dt/appconfig/types/Sprache
Integrierte Aktionen: /usr/dt/appconfig/types/Sprache
Erstellen Sie eine Datei im betreffenden sprachabhängigen Verzeichnis (beispielsweise in /etc/dt/appconfig/types/japanese).
Kopieren Sie die Aktionsdefinition in die sprachabhängige Konfigurationsdatei.
Kopieren Sie beispielsweise eine Aktionsdefinition aus dem Verzeichnis
app_root/dt/appconfig/types/C/Datei.dt
in
app_root/dt/appconfig/types/japanese/Neue_Datei.dt
Fügen Sie jedem Bedienelement ein LABEL-Feld hinzu, oder ändern Sie das vorhandene Feld LABEL.
LABEL Zeichenfolge
Die Beschriftung (LABEL) wird im Anwendungsmanager und Dateimanager verwendet, um das Aktionssymbol zu bezeichnen.
Passen Sie die folgenden Felder in der Aktionsdefinition an:
Für länderspezifische Symbole: ICON
Für länderspezifische Online-Hilfe: DESCRIPTION
Für länderspezifische Eingabeaufforderungen: der Text in Anführungszeichen im Feld EXEC_STRING
Die folgenden Informationen betreffen nur Anwendungen, die das Senden von Nachrichten mit ToolTalk unterstützen.
Erstellen Sie mit dem Aktionstyp TT_MSG
eine Aktion, die
eine ToolTalk-Nachricht sendet.
ACTION Aktionsname { TYPE TT_MSG … }
Das ToolTalk-Feld addressing ist immer auf TT_PROCEDURE gesetzt.
Das ToolTalk-Feld disposition verwendet als Standardwert das statische Meldungsmuster.
Die folgenden Meldungen werden von Aktionen des Typs TT_MSG
nicht unterstützt:
Objektbezogene ToolTalk-Meldungen
Kontextargumente in Meldungen
Tabelle 12–3enthält Informationen über die Schlüsselwörter und deren Verwendung in TT_MSG-Aktionen.
Tabelle 12–3 Schlüsselwörter für TT_MSG-Aktionen und deren Verwendung
Schlüsselwort |
Verwendung |
---|---|
TT_CLASS |
Definiert den Wert des ToolTalk-Meldungsfelds 'class'. |
TT_SCOPE |
Definiert den Wert des ToolTalk-Meldungsfelds 'scope'. |
TT_OPERATION |
Definiert den Wert des ToolTalk-Meldungsfelds 'operation'. |
TT_FILE |
Definiert den Wert des ToolTalk-Meldungsfelds 'file'. |
TT_ARGn_MODE |
Definiert den Wert des ToolTalk-Attributs 'mode' des nten Meldungsarguments. |
TT_ARGn_VTYPE |
Definiert den Wert des ToolTalk-Attributs 'vtype' des nten Meldungsarguments. |
TT_ARGn_VALUE |
Definiert den Wert des n ten Meldungsarguments. |