Es gibt zwei Möglichkeiten, eine Datentypdefinition zu erstellen:
in dem Werkzeug 'Aktion erstellen'. Die Verwendung von 'Aktion erstellen' wird in Kapitel 11 beschrieben.
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 zu Datentypen finden Sie im Abschnitt Kapitel 10.
Referenzinformationen zu Datentypdefinitionen können Sie der Hilfeseite dtddsfile(4) entnehmen.
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 Namen, Muster oder Inhaltskriterien für denselben Datentyp - beispielsweise ein Datentyp, der auf Dateien mit dem Namen *.abc oder *.def basiert.
Datentypzuordnung auf der Grundlage von Verweisen.
Eine Datentypdefinition besteht aus zwei separaten Datenbankdefinitionen:
Die DATA_ATTRIBUTES
-Definition
Die DATA_ATTRIBUTES
-Definition
beschreibt den Namen des Datentyps und das Erscheinungsbild und Verhalten
von Dateien dieses Typs.
Die DATA_CRITERIA
beschreibt,
nach welchen Kriterien der Datentyp zugeordnet wird. Jede Kriteriendefinition
gibt an, auf welche DATA_ATTRIBUTES
-Definition
sie angewendet wird.
Für jede DATA_ATTRIBUTES
-Definition
muß mindestens eine DATA_CRITERIA
-Definition
vorliegen. Einer DATA_ATTRIBUTES
-Definition
können dabei mehrere DATA_CRITERIA
-Definitionen
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 finden Sie im Abschnitt Datenkriterien für einen Datentyp definieren.
In diesem Abschnitt wird beschrieben, wie eine Datentypkonfigurationsdatei erstellt wird.
Konfigurationsdateien, die Datentypdefinitionen enthalten, müssen folgende Voraussetzungen erfüllen:
Die Dateien müssen die Namenskonvention name.dt verwenden.
Die Dateien müssen sich im Datenbanksuchpfad befinden. Folgender Standardsuchpfad wird verwendet:
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 finden Sie im Abschnitt Wert eines Suchpfads setzen.
Öffnen Sie eine vorhandene Datenbankdatei, oder erstellen Sie eine neue Datei.
Weitere Informationen finden Sie im Abschnitt Konfigurationsdateien für Datentypen.
Definieren Sie die Datenattribute für den Datentyp unter Verwendung folgender Syntax:
DATA_ATTRIBUTES datentypname { ICON bildname DESCRIPTION zeichenfolge attributfeld attributfeld … }
Die einzelnen Parameter können folgendermaßen belegt werden:
datentypname - Ein eindeutiger Name, der diesem Datentyp zugeordnet wird.
bildname- Dateiname oder Pfad einer Grafikdatei. Verwenden Sie den Basisnamen für die Datei. Verwenden Sie beispielsweise für die Grafikdateien meinbild.m.pm und meinbild.t.pm den Namen meinbild.
attributfeld - Feld, das das Erscheinungsbild oder Verhalten des Datentyps definiert.
zeichenfolge - Folge von Zeichen. Der Inhalt dieser Zeichenfolge wird für diesen Datentyp als Kontexthilfe angezeigt.
Weitere Informationen finden Sie im Abschnitt Beispiel für die Erstellung einer persönlichen Aktion und eines Datentyps.
Definieren Sie die Datenkriterien unter Verwendung folgender Syntax:
DATA_CRITERIA kriterienname { DATA_ATTRIBUTES_NAME datentypname kriterienfeld kriterienfeld… }
Die einzelnen Parameter können folgendermaßen belegt werden:
kriterienname - Eindeutiger Name für diese Kriteriendefinition.
datentypname — der in der DATA_ATTRIBUTES
-Definition verwendete Name.
kriterienfeld - Feld, in dem das Kriterium für die Zuordnung einer Datei zu diesem Datentyp definiert wird.
Weitere Informationen finden Sie im Abschnitt Datenkriterien für einen Datentyp definieren.
Die Datenbankdatei sichern.
Erstellen Sie die Symbole für den Datentyp.
Weitere Informationen finden Sie im Abschnitt Geben Sie das Symbolbild an, das für einen Datentyp verwendet wird.
Erstellen Sie, falls erforderlich, die Aktionen, die im Feld ACTIONS der Attributdefinition aufgelistet sind.
Doppelklicken Sie auf 'Aktionen erneut laden' in der Gruppe von Anwendungen `Desktop-Werkzeuge', 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 auf eine GIF-Datendatei
durch Auswählen der Datendatei und Auswählen der Anwendung im Menü 'Ausgewählt'
Öffnen Sie eine neue Datei mit dem Pfad HomeVerzeichnis/.dt/types/GifViewer.dt zur Bearbeitung.
Geben Sie die Datentypdefinitionen ein:
DATA_ATTRIBUTES Gif { DESCRIPTION Gif-Bilddatei ICON GifIcon ACTIONS View } DATA_CRITERIA Gif_Criteria { DATA_ATTRIBUTES_NAME Gif NAME_PATTERN *.gif }
Geben Sie die Aktionsdefinition für die Aktion `GifViewer' ein:
ACTION GifViewer { EXEC_STRING xgif %(File)Arg_1"Gif-Datei anzeigen:" WINDOW_TYPE NO_STDIO DESCRIPTION Eine Datei doppelklicken oder ablegen, um die GIF-Anzeige zu starten. }
Da die Definition kein Feld ICON enthält, verwendet die Aktion das Standardsymbol des Systems.
Geben Sie die folgende Zuordnungsaktion ein, um die Aktion GifViewer mit der Aktion 'View', die in der Datentypdefinition aufgelistet ist, zu verbinden. Über das Feld ARG_TYPE wird die Aktion 'View' auf Dateien vom Typ 'Gif' eingeschränkt.
ACTION View { ARG_TYPE Gif TYPE MAP MAP_ACTION GifViewer }
Speichern Sie die Datei.
Doppelklicken Sie auf 'ErneutLaden' in der Anwendungsgruppe 'Desktop-Anwendungen', um die Datenbank erneut zu lesen.
Die DATA_ATTRIBUTES
-Definition
legt das Erscheinungsbild und das Verhalten des Datentyps fest. Sie gibt
den Namen des Datentyps an und bietet die Möglichkeit, zusätzlich
folgendes anzugeben:
das Dateimanagersymbol (ICON-Feld)
das Verhalten bei Doppelklicken und den Inhalt des Menüs 'Ausgewählt' (ACTIONS-Feld)
Das Feld ICON wird verwendet, um das Symbol anzugeben, das im Dateimanager verwendet wird. Wird kein Symbolbild angegeben, wird im Dateimanager nur eine Beschriftung angezeigt.
Das Feld ICON kann folgende Werte annehmen:
Der Basisdateiname ist der Name der Datei, die die Symbolgrafik enthält, jedoch ohne die Dateinamen-Suffixe für die Größe m und t und den Grafiktyp bm und pm). Verwenden Sie beispielsweise für die Dateien SpielSym.m.pm und SpielSym.t.pm den Basisnamen SpielSym.
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 zur Symboldatei (einschließlich des vollständigen Dateinamens)
Der absolute Pfad sollte nur verwendet werden, wenn die Symboldatei sich nicht im Symbolsuchpfad befindet. Befindet sich die Symboldatei SpielSym.m.pm im Verzeichnis /doc/projects, das nicht im Symbolsuchpfad enthalten ist, lautet der Wert im Feld ICON /doc/projects/SpielSym.m.pm.
Tabelle 13–1 enthält eine Liste mit Symbolgrößen, die Sie erstellen sollten, 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:
Im ACTIONS-Feld der DATA_ATTRIBUTES
-Definition 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 durch Doppelklicken aktiviert werden kann.
Aktionen können mit dem Feld ARG_TYPE der Aktionsdefinition auf bestimmte Datentypen beschränkt werden.
Beispielsweise wird über die folgende Datentypdefinition ein Datentyp für spezielle "readme“-Dateien erstellt, die von Ihrem Systemverwalter erzeugt wurden und die Namenskonvention *.rm verwenden.
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 Systemverwalter gesendet (Mail-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 }
Hat eine Datei einen verborgenen Datentyp, wird sie nicht im Dateimanager angezeigt.
Über das Feld PROPERTIES der DATA_ATTRIBUTES
-Definition wird angegeben,
daß Objekte dieses Typs ausgeblendet werden:
PROPERTIES invisible
Tabelle 13–2
zeigt die DATA_ATTRIBUTES
-Felder,
die in erster Linie von Anwendungsprogrammierern verwendet werden. 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, die 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 DATA_CRITERIA
-Definition legt die Kriterien für
die Zuordnung eines Objekttyps zu einer Datei oder einem Verzeichnis fest.
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.
Verwenden Sie das Feld NAME_PATTERN, 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 beginnen und auf .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 }
Durch die folgende Definition wird ein Datentyp für Verzeichnisse mit dem Namen Demo_n erstellt. Dabei steht n für die Ziffern 0 bis 9.
DATA_ATTRIBUTES Demo_directory { DESCRIPTION Dies ist ein Verzeichnis. Zum Öffnen doppelklicken. ICON Demo ACTIONS OpenInPlace,OpenNewView } DATA_CRITERIA Demo_directory_criteria { NAME_PATTERN Demo_[0-9] MODE d DATA_ATTRIBUTES_NAME Demo_directory }
Verwenden Sie das Feld PATH_PATTERN, 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 sowohl 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. Die Felder 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. Dabei ist n = 1 bis 9 und bezieht sich auf Dateien, die sich in 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 bezieht sich auf alle Dateien im Verzeichnis /doc/project1, die den Namen chnn.xxx haben. Dabei steht n für die Ziffern 0 bis 9 und xxx für eine beliebige Folge aus drei Zeichen in der Dateinamenerweiterung.
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 }
Verwenden Sie das Feld MODE, um 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 MODE-Feld kann 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 |
Beschreibung |
---|---|
! | |
& | |
| |
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 einen Verweis 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
Über die folgende Datentypdefinition wird ein Datentyp für schreibgeschützte, nicht ausführbare Dateien erstellt, deren Dateinamen 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 }
Über das 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.
Verwenden Sie für die Zuordnung auf der Grundlage einer Zeichenfolge folgende Syntax:
CONTENT start_byte string zeichenfolge
Verwenden Sie für die Zuordnung auf der Grundlage des numerischen Inhalts folgende Syntax:
CONTENT start_byte byte nummer CONTENT start_byte short nummer CONTENT start_byte long nummer
Verwenden Sie für die Zuordnung auf der Grundlage des Inhalts eines Verzeichnisses folgende Syntax:
CONTENT 0 filename "dateiname"
Verwenden Sie die Standard-C-Notation für Oktal- (beginnend mit o) und Hexadezimalzahlen (beginnend mit oX).
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.
Erstellen Sie die DATA_ATTRIBUTES
-Definition
für den Datentyp.
Erstellen Sie eine DATA_CRITERIA
-Definition
für jedes Kriterium.
Verwenden Sie das Feld DATA_ATTRIBUTES_NAME,
um jedes Kriterium mit derselben DATA_ATTRIBUTES
-Definition 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 string MIFFile }
Der Suchpfad für Datentypen enthält sprachenabhängige Positionen. Das Desktop verwendet den Wert von LANG, um festzulegen, welche Verzeichnisse nach Datentypdefinitionen durchsucht werden.
Länderspezifische Datentypdefinitionen müssen in die entsprechenden sprachenabhängigen Verzeichnisse im Aktionssuchpfad gestellt werden.
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