Es gibt zwei Möglichkeiten, eine Datentypdefinition zu erstellen:
in dem Werkzeug 'Aktion erstellen'. Die Verwendung von 'Aktion erstellen' wird in Kapitel 11."ausführlich behandelt.
die Datentypdefinition manuell erstellen.
Um einen Datentyp manuell zu erstellen, ist es erforderlich , eine Datenbankdatei zu bearbeiten.
Im folgenden Kapitel wird beschrieben, wie Datentypdefinitionen manuell erstellt werden.
"Komponenten einer Datentypdefinition: Kriterien und Attribute"
"Beispiel für die Erstellung einer persönlichen Aktion und eines Datentyps"
Eine Einführung in Datentypen enthält Kapitel 10.
Referenzinformationen zu Datentypdefinitionen können der Hilfeseite dtddsfile(4) entnommen werden.
Wird ein Datentyp manuell erstellt, können alle Möglichkeiten, die die Syntax von Datentypdefinitionen bietet, ausgeschöpft werden.
Sollen die folgenden Merkmale von Datentypen verwendet werden, muß der Datentyp manuell erstellt werden:
Datentypzuordnung auf der Grundlage der Position (des Pfads).
Die Möglichkeit, dem Datentyp neben 'Öffnen' und 'Drucken' weitere Aktionen zuzuordnen.
Mehrere Namens-, Muster- oder Inhaltskrititerien werden für denselben Datentyp, beispielsweise ein Datentyp, der auf Dateien mit der Erweiterung *.abc oder *.def endet, verwendet.
Datentypzuordnung auf der Grundlage von Verweisen.
Eine Datentypdefinition besteht aus zwei separaten Datenbankdefinitionen:
Die Definition DATA_ATTRIBUTES.
Die Definition DATA_ATTRIBUTES beschreibt den Namen des Datentyps und das Erscheinungsbild und Verhalten von Dateien dieses Typs.
Die Definition DATA_CRITERIA beschreibt, nach welchen Kriterien der Datentyp zugeordnet wird. Jede Kriteriendefinition gibt an, auf welche Definition DATA_ATTRIBUTES sie angewendet wird.
Für jede Definition DATA_ATTRIBUTES muß mindestens eine Definition DATA_CRITERIA vorliegen. Es können ihr aber auch mehre Definitionen DATA_CRITERIA zugeordnet sein.
Beispielsweise könnte ein Benutzer eine Attributdefinition für PostScript-Dateien erstellen, in der beschrieben wird, wie PostScript-Dateien im Dateimanager angezeigt werden und wie sie sich verhalten. Anschließend könnte der Benutzer zwei verschiedene Kriterien für den Datentyp PostScript erstellen, einen auf der Grundlage des Dateinamens, und einen auf der Grundlage des Dateiinhalts.
Weitere Informationen können dem Abschnitt "Datenkriterien für einen Datentyp definieren" entnommen werden.
In diesem Abschnitt wird beschrieben, wie eine Datentypkonfigurationsdatei erstellt wird.
Konfigurationsdateien, die Datentypdefinitionen enthalten, müssen folgende Voraussetzungen erfüllen:
Die Dateien müssen der Namenskonvention name.dt entsprechen.
Die Dateien müssen sich im Datenbanksuchpfad befinden. Der Standardsuchpfad lautet:
Persönliche Datentypen - Home-Verzeichnis/.dt/types
Systemweite Datentypen - /etc/dt/appconfig/types/Sprache
Integrierte Datentypen - /usr/dt/appconfig/types/Sprache. Dieses Verzeichnis sollte nicht verwendet werden.
Weitere Informationen zum Ändern des Datenbanksuchpfads können dem Abschnitt "Wert eines Suchpfads setzen" entnommen werden.
Eine bereits vorhandene Datenbankdatei öffnen oder eine neue erstellen.
Weitere Informationen können dem vorherigen Abschnitt "Konfigurationsdateien für Datentypen" entnommen werden.
Die Datenattribute für den Datentyp unter Verwendung folgender Syntax definieren:
DATA_ATTRIBUTES daten_typ_name { ICON bild_name DESCRIPTION zeichenfolge attribute_field attribute_field ... }
wobei die Parameter folgende Bedeutung haben:
daten_typ_name - Ein eindeutiger Name, der diesem Datentyp zugeordnet wird.
bild_name - Dateiname oder Pfad einer Symboldatei. Den Dateinamen ohne Pfad für die Datei verwenden. Beispielsweise wird für die Symboldateien yimage.m.pm und myimage.t.pm der Name myimage verwendet.
attribut_feld - Feld, das das Erscheinungsbild oder Verhalten des Datentyps definiert.
zeichenfolge - Zeichenfolge. Der Inhalt dieser Zeichenfolge wird für diesen Datentyp als Kontexthilfe angezeigt.
Weitere Informationen hierzu können dem Abschnitt "Beispiel für die Erstellung einer persönlichen Aktion und eines Datentyps" entnommen werden.
Die Datenkriterien unter Verwendung folgender Syntax definieren:
DATA_CRITERIA kriterien_name { DATA_ATTRIBUTES_NAME daten_typ_name kriterien_feld kriterien_feld ... }
wobei die Parameter folgende Bedeutung haben:
kriterien_name Eindeutiger Name für diese Kriteriendefinition.
daten_typ_name Name, der in der Definition DATA_ATTRIBUTES verwendet wird.
kriterien_feld Feld, in dem das Kriterium für die Zuordnung einer Datei zu diesem Datentyp definiert wird.
Weitere Informationen hierzu können dem Abschnitt "Datenattribute eines Datentyps definieren" entnommen werden.
Die Datenbankdatei sichern.
Die Symbole für den Datentyp erstellen.
Weitere Informationen hierzu können dem Abschnitt "Symbolbild angeben, das für einen Datentyp verwendet wird"entnommen werden.
Falls erforderlich, die Aktionen, die im Feld ACTIONS der Attributdefinition aufgelistet sind, erstellen.
'Aktionen erneut laden' in der Gruppe von Anwendungen `Desktop-Werkzeuge' doppelklicken, um die Datenbank erneut zu laden.
Angenommen, das System enthält eine Anwendung mit dem Namen xgif, die GIF-Bilder anzeigt. Normalerweise wird das Programm ausgeführt, indem folgendes eingegeben wird:
xgif dateiname
Nun sollen GIF-Bilder auf verschiedene Weise angezeigt werden:
durch Doppelklicken einer GIF-Datendatei
durch Auswählen der Datendatei und Auswählen der Anwendung im Menü 'Ausgewählt'
Eine neue Datei Home-Verzeichnis/.dt/types/GifViewer.dt zum Bearbeiten öffnen.
Die Datentypdefinitionen eingeben:
DATA_ATTRIBUTES Gif { DESCRIPTION Gif image file. ICON GifIcon ACTIONS View } DATA_CRITERIA Gif_Criteria { DATA_ATTRIBUTES_NAME Gif NAME_PATTERN *.gif }
Die Aktionsdefinition für die Aktion `GifViewer' eingeben:
ACTION GifViewer { EXEC_STRING xgif %(File)Arg_1"Gif-Datei anzeigen:" WINDOW_TYPE NO_STDIO DESCRIPTION Eine Datei doppelklicken oder Übergeben, um die GIF-Anzeige zu starten. }
Da die Definition kein Feld ICON enthält, verwendet die Aktion das Standardsymbol des Systems.
Die folgende Zuordnungsaktion eingeben, um die Aktion GifViewer mit der Aktion View, die in der Datentypdefinition aufgelistet ist, zu verbinden. Mit dem Feld ARG_TYPE wird die Aktion View auf Dateien vom Typ Gif eingeschränkt.
ACTION View { ARG_TYPE Gif TYPE MAP MAP_ACTION GifViewer }
Die Datei sichern.
Auf 'Aktionen erneut laden' in der Gruppe von Anwendungen Desktop-Werkzeuge doppelklicken, um die Datenbank erneut zu lesen.
Die Definition DATA_ATTRIBUTES definiert das Erscheinungsbild und das Verhalten des Datentyps. Sie gibt den Namen des Datentyps an und bietet die Möglichkeit, zusätzlich folgendes anzugeben:
das Dateimanagersymbol (Feld ICON)
das Verhalten bei Doppelklicken und den Inhalt des Menüs 'Ausgewählt' (Feld ACTIONS )
Das Feld ICON wird verwendet, um das Symbol anzugeben, das im Dateimanager verwendet wird. Wird kein Symbolbild angegeben, wird im Dateimanager nur eine Bezeichnung angezeigt.
Bei dem Wert des Felds ICON kann es sich um folgendes handeln:
Der Dateiname ohne Pfad ist der Name der Datei, die das Symbolbild enthält, ohne die Dateinamenerweiterungen für Größe (m und t) und Abbildtyp (bm und pm). Beispielsweise wird für Dateien mit den Namen GameIcon.m.pm und GameIcon.t.pm der Name GameIcon verwendet.
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
Einen absoluten Pfad zu 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 sich nicht im Symbolsuchpfad befindet, wird im Feld ICON der Wert /doc/projects/GameIcon.m.pm gesetzt .
Tabelle 13-1enthält eine Liste mit Symbolgrößen, die der Benutzer erstellen sollte, und den zugehörigen Dateinamen.
Größe in Pixel |
Bitmap-Name |
Pixmap-Name |
---|---|---|
32 x 32 |
name.m.bm |
name .m.pm |
16 x 16 |
name.t.bm |
name .t.pm |
Es gibt zwei Möglichkeiten, Datentypen Aktionen zuzuordnen:
In dem Feld ACTIONS in der Definition DATA_ATTRIBUTES werden die Aktionen aufgelistet, die im Menü 'Ausgewählt' des Dateimanagers erscheinen. Bei der ersten Aktion in der Liste handelt es sich um die Standardaktion, die auch durch Doppeltklicken aktiviert werden kann.
Aktionen können mit dem Feld ARG_TYPE der Aktionsdefinition auf angegebene Datentypen beschränkt werden.
Beispielsweise erstellt die folgende Datentypdefinition einen Datentyp für spezielle, vom Systemadministrastor erstellte "Readme"-Dateien mit der Namenskonvention *.rm.
DATA_ATTRIBUTES SysReadmeFile { ICON SysReadMe ACTIONS Open,Respond } DATA_CRITERIA SysReadmeFileCriteria { NAME_PATTERN *.rm DATA_ATTRIBUTES_NAME SysReadmeFile }
Eine spezielle Aktion `Respond' für die Datei wird im folgenden definiert. Dadurch wird eine schreibbare Kopie der Datei im Texteditor geöffnet. Wird die Datei gesichert und der Texteditor verlassen, wird die Datei über elektronische Post an den Systemadministrator gesendet (Adresse sysadmin@utd).
ACTION Respond { ARG_TYPE SysReadmeFile EXEC_STRING /bin/sh -c 'cp %Arg_1% $HOME/readme.temp;\ chmod +w $HOME/readme.temp; \ dtpad $HOME/readme.temp; \ cat $HOME/readme.temp | \ /usr/bin/mailx sysadmin@utd; \ rm $HOME/readme.temp' WINDOW_TYPE NO_STDIO }
Ist eine Datei ein verdeckter Datentyp, wird sie nicht im Dateimanager angezeigt.
Im Feld PROPERTIES in der Definition DATA_ATTRIBUTES wird angegeben, daß Objekte dieses Typs verdeckt werden:
PROPERTIES invisible
Die folgenden Felder DATA_ATTRIBUTES werden in erster Linie von Anwendungsprogrammierern verwendet. Hier wird angegeben, wie sich Dateien verhalten, wenn der Benutzer verschiedene Desktop-Aktivitäten durchführt.
Weitere Informationen können der Publikation Common Desktop Environment Programmer's Guide, entnommen werden, das Bestandteil der Entwicklerumgebungsdokumentation ist.
Tabelle 13-2 DATA_ATTRIBUTES Felder und Beschreibungen
Feld |
Beschreibung |
---|---|
Für Container, wie beispielsweise Verzeichnisse. Gibt die auszuführende Aktion an, wenn eine Datei in einen Container dieses Datentyps verschoben wird. |
|
Für Container, wie beispielsweise Verzeichnisse. Gibt die auszuführende Aktion an, wenn eine Datei in einen Container dieses Datentyps kopiert wird. |
|
Gibt die auszuführende Aktion an, wenn eine Datei mit einer Datei dieses Datentyps verknüpft wird. |
|
Gibt an, daß Dateien dieses Datentyps Text enthalten, der in einem Textfeld angezeigt werden kann. |
|
Gibt den entsprechenden ToolTalk-Medientyp an. |
|
Gibt den entsprechenden MIME-Typ an. |
|
Gibt den entsprechenden X400-Typ an. |
Die Definition DATA_CRITERIA definiert die Kriterien für die Zuordnung eines Objekttyps zu einer Datei oder einem Verzeichnis
Sie können die Kriterien in Tabelle 13-3 für die Objektzuordnung verwenden.
Tabelle 13-3 DATA_CRITERIA - Kriterien und Beschreibungen
Für einen Datentyp kann mehr als ein Kriterium verwendet werden. Aber die Kriterien NAME_PATTERN und PATH_PATTERN sollten nicht in demselben Datentyp verwendet werden.
Das Feld NAME_PATTERN verwenden, um die erforderlichen Merkmale des Dateinamens anzugeben. Das Feld kann die folgenden Platzhalterzeichen enthalten:
? - Entspricht einem beliebigen einzelnen Zeichen
* - Entspricht einer beliebigen Folge von Zeichen (einschließlich einer leeren Zeichenfolge )
[cc... ] - Entspricht einem beliebigen der in Klammern gesetzten Zeichen ( c)
[c- c] - Entspricht einem beliebigen Zeichen aus dem Bereich von c bis c
Die folgende Datentypdefinition erstellt einen Datentyp auf der Grundlage des Dateinamens. Der Dateiname muß mit QS anfangen und mit .doc enden.
DATA_ATTRIBUTES QS_Doc { DESCRIPTION Diese Datei enhält ein Dokument zum QS \ projekt. ICON Word_Doc ACTIONS Open } DATA_CRITERIA QS_Doc_Criteria { NAME_PATTERN QS*.doc DATA_ATTRIBUTES_NAME QS_Doc }
Die folgende Definition erstellt einen Datentyp für Verzeichnisse mit dem Namen Demo_n, wobei n den Zahlen 0 bis 9 entspricht.
DATA_ATTRIBUTES Demo_directory { DESCRIPTION Dies ist ein Verzeichnis. Zum Öffnen doppelklisken. ICON Demo ACTIONS OpenInPlace,OpenNewView } DATA_CRITERIA Demo_directory_criteria { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Demo_directory }
Das Feld PATH_PATTERN verwenden, um den Pfad anzugeben. Es können dieselben Platzhalterzeichen verwendet werden, wie bei NAME_PATTERN.
Beispielsweise verwendet der folgende Datentyp ein Kriterium auf der Grundlage des Pfads.
DATA_ATTRIBUTES Project_Graphics { DESCRIPTION Grafikdatei zum QS-Projekt. Symbol doppelklicken, um die Grafik anzuzeigen. ICON QSgraphics } DATA_CRITERIA Project_Graphics_Criteria { DATA_ATTRIBUTES_NAME Project_Graphics PATH_PATTERN */projects/QS/graphics/* }
Soll ein Datentyp auf der Grundlage des Dateinamens als auch der Position erstellt werden, muß der Name in dem Wert für das Feld PATH_PATTERN enthalten sein. NAME_PATTERN und PATH_PATTERN können nicht in derselben Kriteriendefinition verwendet werden.
Der im folgenden definierte Datentyp QS_Source_Files gilt für alle Dateien mit dem Namen appn .c, wobei n= 1 bis 9, die sich in den Unterverzeichnissen von */projects/QS befinden.
DATA_ATTRIBUTES QS_Source_Files { ... } DATA_CRITERIA QS_Source_Files_Criteria { PATH_PATTERN */projects/QS/*/app[1-9].c DATA_ATTRIBUTES_NAME QS_Source_Files }
Der folgende Datentyp gilt für alle Dateien im Verzeichnis /doc/project1 mit dem Namen chnn .xxx, wobei n 0 bis 9 ist, und xxx eine beliebige aus drei Zeichen bestehende Dateinamenerweiterung ist.
DATA_ATTRIBUTES ChapterFiles { DESCRIPTION Kapiteldatei für das Projektdokument. ICON chapter ACTIONS Edit,Print } DATA_CRITERIA Chapter_Criteria { PATH_PATTERN /doc/project1/ch[0-9][0-9].??? DATA_ATTRIBUTES_NAME ChapterFiles }
Im Feld MODE die erforderlichen Berechtigungen angeben.
Moduskriterien werden normalerweise in Kombination mit der Datentypzuordnung auf der Grundlage von Namen, Position oder Inhalt verwendet. Sie ermöglichen dem Benutzer, einen Datentyp auf eine Datei oder ein Verzeichnis einzuschränken oder die erforderlichen Lese-, Schreib- und Ausführungsberechtigungen anzugeben.
Das FeldMODEkann die folgenden logischen Operatoren (Tabelle 13-4) und Zeichen (Tabelle 13-5) enthalten:
Tabelle 13-4 Logische Operatoren und Beschreibungen für das Feld MODE
Operator |
Beschriebung |
---|---|
! | |
& | |
| |
Tabelle 13-5 Zeichen und Beschreibungen für das Feld MODE
Zeichen |
Beschreibung |
---|---|
Der Datentyp gilt nur für Dateien |
|
Der Datentyp gilt nur für Verzeichnisse |
|
r |
Die Datei kann von jedem Benutzer gelesen werden |
In die Datei kann von jedem Benutzer geschrieben werden |
|
Die Datei kann von jedem Benutzer ausgeführt werden |
|
Die Datei stellt eine Verbindung dar |
Standardmäßig hat der Modus keinen Einfluß.
Die folgenden Modusfelder schränken den Datentyp wie folgt ein:
f&!w - Schreibgeschützte Dateien
!w - Schreibgeschützte Dateien und Verzeichnisse
f&x - Ausführbare Dateien
f&r&x - Dateien, in die geschrieben werden kann, und die ausführbar sind
x|!w - Dateien, die ausführbar oder schreibgeschützt sind
Die folgende Datentypdefinition erstellt einen Datentyp für schreibgeschützte, nicht ausführbare Dateien, deren Namen der Namenskonvention *.doc entsprechen. Es wird angenommen, daß eine Aktion View für den Datentyp definiert wurde.
DATA_ATTRIBUTES ReadOnlyDocument { ICON read_only DESCRIPTION Dieses Dokument kann nicht beschrieben werden. Ein Doppelklick führt den Editor mit einer schreibgeschützten Kopie der Datei aus.. ACTIONS View } DATA_CRITERIA ReadOnlyDocument_Criteria { NAME_PATTERN *.doc MODE !d&!x&!w DATA_ATTRIBUTES_NAME ReadOnlyDocument }
Im Feld CONTENT wird angegeben, daß die Datentypzuordnung auf der Grundlage des Inhalts der Datei erfolgen soll. Die Datentypzuordnung auf der Grundlage des Inhalts einer Datei kann in Kombination mit der Datentypzuordnung auf der Grundlage von Namen oder Position verwendet werden.
Die Zuordnung kann auf der Grundlage einer Zeichenfolge oder des numerischen Inhalts einer Datei erfolgen. Das erste Byte in der Datei erhält die Zahl 0.
Für die Zuordnung auf der Grundlage einer Zeichenfolge folgende Syntax verwenden:
CONTENT start_byte string zeichenfolge
Für die Zuordnung auf der Grundlage des numerischen Inhalts folgende Syntax verwenden:
CONTENT start_byte byte nummer
CONTENT start_byte short nummer
CONTENT start_byte long nummer
Für die Zuordnung auf der Grundlage des Inhalts eines Verzeichnisses folgende Syntax verwenden:
CONTENT 0 filename "datei_name"
Standard-C-Notation für Oktal- (beginnend mit o) und Hexadezimalzahlen (beginnend mit oX) verwenden.
Die Datentypzuordnung auf der Grundlage des Inhalts beeinträchtigt die Systemleistung. Der Benutzer sollte, wenn möglich, die Datentypzuordnung auf der Grundlage von Namen und Position verwenden.
Beispielsweise gilt der folgende Datentyp Writable_Wingz für alle Dateien mit Schreibberechtigung, die am Anfang der Datei die Zeichenfolge WNGZ enthalten.
DATA_ATTRIBUTES Writable_Wingz { ... } DATA_CRITERIA Writable_Wingz_Criteria { CONTENT 0 string WNGZ MODE w&!d DATA_ATTRIBUTES_NAME Writable_Wingz }
Es kann ein Datentyp mit mehreren unabhängigen Kriterien erstellt werden, d.h. ein Datentyp, dem die Datei zugeordnet wird, wenn sie einem (oder beiden) Kriterien entspricht.
Die Definition DATA_ATTRIBUTES für den Datentyp erstellen.
Eine Definition DATA_CRITERIA für jedes Kriterium erstellen.
Das Feld DATA_ATTRIBUTES_NAME verwenden, um jedes Kriterium mit derselben Definition DATA_ATTRIBUTES zu verbinden.
Beispielsweise erstellen die folgenden Definitionen den Datentyp Mif . Die Datentypzuordnung erfolgt auf der Grundlage von Namen oder Inhalt.
DATA_ATTRIBUTES Mif { ICON Frame ACTION_LIST Open,Print } DATA_CRITERIA Mif_Name_Criteria { DATA_ATTRIBUTES_NAME Mif NAME_PATTERN *.mif } DATA_CRITERIA Mif_Content_Criteria { DATA_ATTRIBUTES_NAME Mif CONTENT 1 zeichenfolge MIFFile }
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.
Sprachenabhängige Datentypdefinitionen müssen in die entsprechenden sprachenabhängigen Verzeichnisse im Aktionssuchpfad gestellt werden.
Der Standardsuchpfad lautet:
Persönliche Aktionen: Home-Verzeichnis/.dt/types
Systemweite Aktionen: /etc/dt/appconfig/types/ sprache
Integrierte Aktionen: /usr/dt/appconfig/types/ sprache