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_Tools 应用程序组中的"重新装入动作",以便重新装入数据库。

创建个人动作和数据类型的示例

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

xgif文件名

需要以几种方式来显示 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_Tools 应用程序组中的"重新装入动作",以重新从数据库中读取。

定义数据类型的数据属性

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

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

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

ICON字段的值可以是:

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

象素大小 

位图名称 

象素图名称 

32 乘 32 

名称.m.bm

名称.m.pm

16 乘 16 

名称.t.bm

名称.t.pm

将数据类型与动作相关联

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

根据数据类型隐藏文件

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

在 DATA_ATTRIBUTES 定义中使用PROPERTIES 字段 来指定此类要隐藏的对象:

PROPERTIES				invisible

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

表 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.  	
   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_NAM		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. 对数据类型定义中的一个或多个字段进行本地化。