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

数据类型的介绍

当用户创建了新的数据文件,在"文件管理器"中,文件图标的外观与性能随用户创建的数据文件类型的不同而不同。这种为文件和目录创建定制的外观和性能的能力由桌面数据分类机制提供。

什么是数据类型?

数据类型是在桌面数据库内部定义的结构。例如,下面是 XWD 数据类型的定义。该定义在配置文件 /usr/dt/appconfig/types/language/xclients.dt 中:

DATA_ATTRIBUTES XWD  
  {  	
   ACTIONS		Open,Print  	
   ICON		Dtxwd  
   NAME_TEMPLATE		%s.xwd
 	MIME_TYPE		application/octet-stream
  	SUNV3_TYPE		xwd-file  
	   DESCRIPTION  		This file contains a graphics image in the XWD \
 			format. These files are typically created by \
 			taking snapshots of windows using the XwdCapture \
				action. Its data type is named XWD. XWD files \
				have names ending with `.xwd' or `.wd'. 
  }
DATA_CRITERIA XWD1  
  {  	
   DATA_ATTRIBUTES_NAME			XWD  
   MODE		f  	
   NAME_PATTERN		*.xwd    
  }

   DATA_CRITERIA XWD2  
  {  
   DATA_ATTRIBUTES_NAME			XWD  	
   MODE		f  	
   NAME_PATTERN		*.wd
  }

每个数据类型定义均有两部分:

DATA_ATTRIBUTES-描述数据类型的外观和 性能。

DATA_CRITERIA-指定将文件归类至所属数据类型 的规则(命名或内容)。

DATA_ATTRIBUTES_NAME 字段将标准连接至属性。

一个 DATA_ATTRIBUTE可以有多个 DATA_CRITERIA。例如,XWD 数据类型具有两个标准来指定两个不同的命名 标准 (NAME_PATTERN)-名称以 .xwd 或以 .wd 结尾。

数据类型如何将数据文件连接到动作

考虑 XWD 数据类型。用户通过赋给文件两个文件名 后缀(扩展名):.xwd.wd中的一个来 创建 XWD 类型的文件。桌面使用文件名作为将文件标识为某种类型的标准

XWD 数据类型通过下列方法为此数据类型的每个文件提供:

从"选定"菜单运行动作

"文件管理器"中的"选定"菜单,只有当文件或目录被选定时才是活动的。"选定"菜单底部的命令取决于数据类型。例如,如果选中 XWD 文件,则"选定"菜单包括"打开"和"打印"项。

数据类型定义中的 ACTIONS 字段指定了被添加到 数据类型"选定"菜单底部的命令。

DATA_ATTRIBUTES XWD { ACTIONS Open,Print ...

"选定"菜单的内容取决于数据类型。但是,许多不同的数据类型都提供"打开"动作-就是说,当在 "文件管理器"中选择特定数据类型的文件并显示"选定"菜单时,可见到"打开"命令。

图形 10-5 XWD 文件的"选定"菜单

Graphic

"打开"动作通常运行与数据文件相关联的应用程序。例如,打开 XWD 文件将运行 Xwud 动作,该动作随后运行 xwud X 客户程序来显示屏幕图象。也就是说,对于 XWD 数据类型,"打开"动作与 Xwud 动作是同义的。同样,打开"文本文件"数据类型的文件将运行"文本编辑器", 而打开 BM(位图)或 PM(象素图)文件将运行"图标编辑器"。

创建各种完成不同功能的"打开"动作的能力使用了动作定义的两个特性:

下面的动作定义将 XWD 数据类型的"打开"动作映射成 Xwud 动作。 该动作定义位于数据库配置文件 /usr/dt/appconfig/types/C/xclients.dt中。

ACTION Open  
  {  	
   LABEL		Open  	
   ARG_TYPE		XWD
   TYPE		MAP
   MAP_ACTION		Xwud
  }

TYPE 字段指定这是个映射动作;MAP_ACTION 字段指定该动作执行 Xwud 动作。ARG_TYPE 字段指定该动作只适用于 数据类型为 XWD 的文件。

比较"打开"动作的前一个定义与下一个定义,下一个定义出现在数据库 文件 /usr/dt/appconfig/types/C/dt.dt中。

ACTION Open
  {  	
   LABEL		Open
   ARG_TYPE		BM  	
   TYPE		MAP  
   MAP_ACTION		Dticon
  }

此定义适用于 BM(位图文件)数据类型 (ARG_TYPE) 的文件。该定义将"打开"动作映射为运行"图标编辑器"的 Dticon 动作。

定义数据类型的双击性能

数据类型的双击性能由 ACTIONS 字段的第一项来定义。 例如,对于 XWD 数据类型,双击性能 将运行"打开"动作,该动作随后运行 Xwud 动作。

将数据文件放置到动作图标上

当用户将数据文件放置到动作图标上时,系统使用此数据文件作为动作的 参数来运行该动作(请参阅 "动作如何将数据文件作为参数使用")。

例如,如果将 XWD 数据文件放置到"Xwd 显示"图标上,则在运行 Xwud 动作时,使用了数据文件参数。此动作以该数据文件来运行 xwud X 客户程序。

为数据类型创建桌面打印

桌面打印提供下列方法来打印数据文件:

除桌面打印外,许多应用程序还提供一种从应用程序内部打印的方法。

桌面打印使用名为"打印"的动作。"打印"和"打开"一样,是用于许多不同数据类型的动作名。因此,"打印"动作使用 动作映射和 ARG_TYPE 字段为每种数据类型进行 打印配置。

例如,下面是 XWD 数据类型的"打印"动作。该定义位于 /usr/dt/appconfig/types/language/xclients.dt中:

ACTION Print  
  {
   LABEL		Print
   ARG_TYPE		XWD
   TYPE		MAP  	
   MAP_ACTION		NoPrint
  }

此"打印"动作专用于 XWD 文件,且被映射成 NoPrint 动作。 NoPrint 是在 /usr/dt/appconfig/types/language/dt.dt中定义的专用动作。NoPrint 动作显示对话框,告知用户该数据类型无法被打印。

将 XWD "打印"动作与下面的 PCL 文件的"打印"动作比较:

ACTION Print 
  {  	
   LABEL		Print  	
   ARG_TYPE			PCL
   TYPE		MAP	
   MAP_ACTION		PrintRaw
  }

/usr/dt/appconfig/types/language/print.dt中 定义的 PrintRaw 动作包含打印 PCL 文件的命令行。

ACTION PrintRaw  
  {  	
   TYPE		COMMAND
   WINDOW_TYPE		NO_STDIO  
   EXEC_STRING		/usr/dt/bin/dtlp -w% (File)Arg_1%
  }