Solaris 公用桌面环境:高级用户和系统管理员指南

第 13 章 手动创建数据类型

有两种创建数据类型定义的方法:

手动创建数据类型需要对数据库文件进行编辑。

本章描述如何手动创建数据类型定义。

必须手动创建数据类型的理由

用手动创建数据类型可以使你利用所有内置在数据类型定义语法中的功能

如果要使用这些数据类型的特性,就必须用手动创建数据类型:

数据类型定义的组成部分:标准和属性

数据类型定义包括两个分离的数据库定义:

必须至少有一个 DATA_CRITERIA 定义作为每个 DATA_ATTRIBUTES 定义;而 DATA_ATTRIBUTES 定义可以有多个 DATA_CRITERIA 与其相关联。

例如,可以为 PostScript 文件创建属性定义,此定义描述了 PostScript 文件在"文件管理器"中的外观和性能。然后,可以为 PostScript 数据类型创建两个分离的标准 -一个基于文件名,而另一个基于文件内容。

有关详细信息,请参见"数据库 (操作/数据类型) 查找路径"

手动创建数据类型:一般步骤

本节描述如何创建数据类型的配置文件。

数据类型的配置文件

对包含数据类型定义的配置文件的要求是:

创建数据类型定义

  1. 打开现有的数据库文件或创建一个新的。

    有关详细信息,请参见前一节"数据类型的配置文件"

  2. 为数据类型定义数据属性,使用下面的语法:

    DATA_ATTRIBUTESdata_type_name
      	{
       		ICON						image_name
     		DESCRIPTION				string
     		 attribute_field
     		 attribute_field
     		...
       	}
    

    其中:

    data_type_name-给定此数据类型的唯一名称。

    image_name-图标文件的文件名或路径。对于文件请使用基本名称。例如,对于图标文件 myimage.m.pmmyimage.t.pm,请使用 myimage

    attribute_field-定义数据类型的外观和性能的字段。

    string-字符串。其内容将是数据类型的针对项帮助。

    请参见"创建个人操作和数据类型的实例"

  3. 定义数据类型的数据标准,使用下面的语法:

    DATA_CRITERIA	criteria_name
     	{
     	DATA_ATTRIBUTES_NAME						data_type_name
     		criteria_field
     		 criteria_field
     		...
     	}
    

    其中:

    criteria_name-此标准定义的唯一名称

    data_type_name-在 DATA_ATTRIBUTES 定义中所使用的名称

    criteria_field-用于定义标准的字段,该标准用于将文件指定给该数据类型

    请参见"定义数据类型的数据标准"

  4. 保存数据库文件。

  5. 为数据类型创建图标。

    有关详细信息,请参见"指定用于数据类型的图标图像"

  6. 如果有必要,创建在属性定义的 ACTIONS 字段列出的操作。

  7. 双击 Desktop_Controls 应用程序组中的"重新装入操作",以便重新装入数据库。

创建个人操作和数据类型的实例

假设系统中包含名为 xgif 的应用程序,它是用来显示 GIF 图片的。通常通过执行下面的命令来运行该程序:

xgif filename

需要以几种方式来显示 GIF 图片:

  1. 打开一个新文件 HomeDirectory/.dt/types/GifViewer.dt,以便编辑。

  2. 键入数据类型定义:

    	DATA_ATTRIBUTES Gif
     	{
     		DESCRIPTION				Gif image file.
     		ICON						GifIcon
     		ACTIONS					View
     	}
    
     	DATA_CRITERIA Gif_Criteria
     	{
     		DATA_ATTRIBUTES_NAME			Gif
     		NAME_PATTERN						*.gif
     	}
  3. 键入 GifViewer 操作的操作定义:

    ACTION GifViewer
     	{
     		EXEC_STRING					xgif %(File)Arg_1"Gif file to view:"
     		WINDOW_TYPE					NO_STDIO
     		DESCRIPTION					Double-click or drop a file to \
     										start the Gif viewer.
     	}

    因为定义不包括 ICON 字段,所以该操作使用系统缺省图标。

  4. 键入下面的映射操作,将 GifViewer 操作连接到在数据类型定义中列出的"查看"操作。使用 ARG_TYPE 字段将此查看操作限定到 Gif 类型文件。

    ACTION View
     	{
     		ARG_TYPE				Gif
     		TYPE					MAP
     		MAP_ACTION			GifViewer
     	} 
  5. 保存文件。

  6. 双击在 Desktop_Controls 应用程序组中的"重新装入操作",以重读数据库。

定义数据类型的数据属性

DATA_ATTRIBUTES 定义定义了数据类型的外观和性能。它指定了数据类型的名称,并提供了指定下面的各项的能力:

指定用于数据类型的图标图像

使用 ICON 字段指定用于"文件管理器"的图标。如果未指定图标图像,"文件管理器"只显示一个标号。

ICON 字段的值可以是:

表 13-1 数据类型图标的图标名称和大小

像素大小 

位图名称 

像素图名称 

32 乘 32 

名称 .m.bm

名称 .m.pm

16 乘 16 

名称 .t.bm

名称 .t.pm

将数据类型与操作相关联

数据类型与操作有两种关联方法:

根据数据类型隐藏文件

如果文件是不可见数据类型,就决不会出现在"文件管理器"中。

使用位于 DATA_ATTRIBUTES 定义中的 PROPERTIES 字段来指定此类要隐含的对象:

 PROPERTIES				不可见

指定当文件被操作时的性能

表 13-2 显示主要由应用程序程序程序员使用的 DATA_ATTRIBUTES 字段。它们指定了在用户执行各种桌面操作时,文件所表现出的特性。

有关详细信息,请参见《公共桌面环境程序员指南》,这是开发者环境文档的一部分。

表 13-2 DATA_ATTRIBUTES 字段和描述

字段 

描述 

MOVE_TO_ACTION

用于类似目录这样的容器。指定当文件被移到该数据类型的容器中时,所要执行的操作。 

COPY_TO_ACTION

用于类似目录这样的容器。指定当文件被复制该数据类型的容器中时,所要执行的操作。 

LINK_TO_ACTION

指定当文件被链接到该数据类型的文件时,所要执行的操作。 

IS_TEXT

指定该数据类型的文件含有可在文本框 中显示的文本。 

MEDIA

指定相应的 ToolTalk 媒体类型。 

MIME_TYPE

指定相应的 MIME 类型。 

X400_TYPE

指定相应的 X400 类型。 

定义数据类型的数据标准

DATA_CRITERIA 定义定义了将对象类型指定给文件或目录所采用的标准。

可使用在对象分类表 13-3 中显示的标准。

表 13-3 DATA_CRITERIA 标准和描述

标准 

描述 

文件名 

文件名必须与指定模式相匹配。使用 NAME_PATTERN 字段。

文件位置 

路径必须与指定模式相匹配。使用 PATH_PATTERN 字段。

文件内容 

文件内容的指定部分必须与指定数据相匹配。使用 CONTENT 字段。

文件模式 

文件必须拥有指定的许可 (读、写、执行、目录)。使用 MODE 字段。

符号链接

分类是以对象所链接的文件为基础的。  

对于一种数据类型,可以使用多个标准。然而,不能在同一个数据类型中使用 NAME_PATTERNPATH_PATTERN 标准。

基于名称的数据类型

使用 NAME_PATTERN 字段指定命名要求。字段值可以包含下面的通配符:

?-匹配任何单个字符

*-匹配任何字符序列 (包括空字符串)

[cc ...]-匹配括在括号中的任何字符 (c)

[c-c ]-匹配字符的范围为 cc 的任何字符

实例

基于位置的数据类型

使用 PATH_PATTERN 字段指定路径。可以使用与 NAME_PATTERN 相同的通配符。

例如,下面的数据类型使用了基于路径的标准。

DATA_ATTRIBUTES Project_Graphics
 {
 	DESCRIPTION			Graphics file for the QS project. Double-click the \
 							icon to see the graphic.
Double-click the \
 							icon to see the graphic.
 	ICON					QSgraphics
 }
 DATA_CRITERIA Project_Graphics_Criteria
 {
 	DATA_ATTRIBUTES_NAME			Project_Graphics
 	PATH_PATTERN						*/projects/QS/graphics/*
 }

基于名称和位置的数据类型

要创建基于文件名和位置的数据类型,请在 PATH_PATTERN 值中包括此名称。在同一个标准定义中,不能同时使用 NAME_PATTERNPATH_PATTERN

实例

使用文件模式作为分类标准

使用 MODE 字段指定必需的许可。

模式标准通常与基于名称、基于位置或基于内容的数据分类组合使用。从而可以将数据类型限定在文件或目录上,或指定所需的读、写和执行许可。

MODE 字段可包含逻辑运算符 (表 13-4) 和字符 (表 13-5)。

表 13-4 MODE 字段逻辑运算符和描述

运算符 

描述 

!

逻辑运算符 NOT

&

逻辑运算符 AND

|

逻辑 OR

表 13-5 MODE 字段字符和描述

字符 

描述 

f

该数据类型只适用于文件 

d

该数据类型只适用于目录 

r

该文件对于任何用户都是可读的 

w

该文件对于任何用户都是可写的 

x

该文件对于任何用户都是可执行的 

l

该文件是链接 

某一具体模式的缺省状态与模式无关。

实例

基于内容的数据分类

使用 CONTENT 字段来指定基于文件内容的数据分类。基于内容的数据分类可与基于名称或基于位置的数据分类组合使用。

分类可基于文件的字符串或数字内容。文件的第一字节的编号为 0 。

用几种独立标准创建数据类型

可用几个独立的标准来创建数据类型-就是说,如果文件符合标准中的任一个 (或两者),就为其指定数据类型。

  1. 为数据类型创建 DATA_ATTRIBUTES 定义。

  2. 为每个标准创建 DATA_CRITERIA 定义。

    使用 DATA_ATTRIBUTES_NAME 字段将每个标准连接到同一个 DATA_ATTRIBUTES 定义。

    例如,下面的定义创建了 Mif 数据类型。分类是基于名称或内容的。

    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
     }

创建本地化的数据类型

数据类型的查找路径包含与语言相关的位置。桌面使用 LANG 的值来确定查找数据类型定义的位置。

本地化数据类型的位置

本地化的数据类型定义必须放置沿操作查找路径的与适当的语言相关的正确目录中。

缺省的查找路径为:

本地化数据类型

  1. 在相应的与语言相关的目录中 (例如,在 /etc/dt/appconfig/types/japanese 中) 创建文件。

  2. 将数据类型定义复制到与语言相关的配置文件中。

  3. 本地化数据类型定义中的一个或多个字段。