Solaris 一般桌上管理系統環境:進階使用者和系統管理員指南

第 13章 人工建立資料類型

建立資料類型定義的方法有兩種:

人工建立資料類型需要您編輯資料庫檔案。

本章描述如何人工建立資料類型定義。

您必須人工建立資料類型的理由

人工建立資料類型可以讓您使用所有建立於資料類型定義語法中的能力。

如果您想要使用這些資料類型的功能,您就必須人工建立資料類型:

資料類型定義的元件:條件與屬性

資料類型定義是由兩種不同的資料庫定義所構成的:

每項 DATA_ATTRIBUTE 定義至少要有一項 DATA_ATTRIBUTES 定義; DATA_ATTRIBUTES 定義可以有與其有關聯的多重 DATA_CRITERIA

例如,您可以建立描述 PostScript 在「檔案管理者」中的外觀與行為的 PostScript 檔案的屬性定義。然後,您可以為 PostScript 資料類型建立兩項不同的條件- 一項以檔案名稱為基礎,而另一項以檔案內容為基礎。

有關更多的資訊,請參閱 "定義資料類型的資料條件"

人工建立資料類型:一般步驟

本節描述如何建立資料類型配置檔案。

資料類型的配置檔案

包含資料類型定義的配置檔案的要求為:

建立資料類型定義

  1. 開啟現存資料庫檔案或建立新檔案。

    有關更多的資訊,請參閱前節"資料類型的配置檔案"

  2. 使用此語法定義資料類型的資料屬性:

    	DATA_ATTRIBUTES data_type_name
     	{
     		ICON						image_name
     		DESCRIPTION				字串
     		 attribute_field
     		 attribute_field
     		...
     	}
    

    其中:

    data_type_name-給予此資料類型的唯一名稱。

    image_name-圖示檔案的檔案名稱或路徑。 使用基本名稱於此檔案。例如,對於圖示檔案 myimage.m.pmmyimage.t.pm,請使用 myimage

    attribute_field-定義資料類型的外觀或行為的欄位。

    字串-字元字串。 內容將會是資料類型的關於項目輔助說明。

    請參閱 "建立個人動作與資料類型的範例"

  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. 如果有需要,請建立列出於屬性定義的 ACTION(動作) 欄位中的動作。

  7. 連按兩下桌面工具應用程式群組中的「重新載入動作」以重新載入資料庫。

建立個人動作與資料類型的範例

假定您的系統包含名為 xgif 的應用程式,此應用程式會顯示 GIF 圖片。一般而言,您藉由執行如下來執行程式:

xgif 檔案名稱

您想要能夠以數種方法顯示 GIF 圖片:

  1. 開啟新檔案 language /.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. 連按兩下桌面工具應用程式群組中的「重新載入動作」以重新讀取資料庫。

定義資料類型的資料屬性

DATA_ATTRIBUTES 定義定義資料類型的外觀與行為。其指定資料類型的名稱,並提供能力以指定:

指定用於資料類型的圖示影像

使用 ICON 欄位以指定「檔案管理者」中所使用的圖示。如果您未指定圖示影像,「檔案管理者」便只會顯示標籤。

ICON 欄位的值可以是:

表 13-1 資料類型圖示的圖示名稱與大小

像素的大小 

點陣圖名稱 

像素對映名稱 

32 乘 32 

name.m.bm

name.m.pm

16 乘 16 

name.t.bm

name.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 模式欄位邏輯運算子與說明

運算子 

說明 

!

邏輯運算子 NOT

&

邏輯運算子 AND

|

邏輯 OR

表 13-5 模式欄位字元與說明

字元 

說明 

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. 本土化資料類型定義中的一個或多個欄位。