Solaris 共通デスクトップ環境 上級ユーザ及びシステム管理者ガイド

第 12 章 手入力によるアクションの作成

アクションを作成するには、次の 2 つの方法があります。

手入力でアクションを作成するには、データベース・ファイルを編集する必要があります。この章では、アクション定義を手入力で作成する方法について説明します。

手入力でアクションを作成しなければならない理由

アクションには次の 3 つの基本型があります。

アクション作成ツールは、COMMAND アクションと MAP アクション型を作成するように設計されています。すべての TT_MSG アクションは、手動で作成しなければなりません。

詳細は、アクション作成ツールの制限を参照してください。

COMMAND アクション

「コマンド・アクション」は、アプリケーションやユーティリティを起動するコマンド、シェル・スクリプト、またはオペレーティング・システム・コマンドを実行します。アクションの定義には、実行されるコマンド (EXEC_STRING) も含まれます。

アクション作成ツールは、コマンド・アクションの最も一般的な型を作成するのに使用できます。しかし、アクションを手動で作成しなければならない状況のときもあります。たとえば、アクションが次のものを指定する場合には、手動で COMMAND アクションを作成しなければなりません。

MAP アクション

「マップ・アクション」は、コマンドや ToolTalk メッセージを直接指定すること以外の、別のアクションに「マップされる」アクションです。

マッピングは、アクションの代替名を指定する機能を提供します。たとえば、[アイコンエディタ] という名前の組み込みコマンド・アクションは、アイコン・エディタを起動します。データベースにも [開く] アクションが含まれていますが、(ARG_TYPE フィールドによって) 定義はビットマップ・ファイルとピックスマップ・ファイルに制限され、 [アイコンエディタ] アクションにマップされます。これによりユーザは、ファイル・マネージャのビットマップ・ファイルまたはピックスマップ・ファイルを選択してから [選択] メニューより [開く] を選択することにより、アイコン・エディタを起動できます。

アクション作成ツールは、[開く] アクションと [印刷] アクションの制限されたマッピングを提供します。その他のすべてのマップ・アクションは、手動で作成しなければなりません。

TT_MSG (ToolTalk メッセージ) アクション

TT_MSG アクションは、ToolTalk メッセージを送信します。すべての TT_MSG アクションは、手動で作成しなければなりません。

手入力によるアクションの作成: 一般的な手順

この節では、アクション定義の構成ファイルを作成する方法について説明します。

アクションの構成ファイル

アクション定義が入っている構成ファイルは、次の要件を満たしていなければなりません。

アクションおよびデータ型検索パスの変更の詳細は、検索パスの値の設定を参照してください。

手入力でアクションを作成するには

  1. 既存のデータベース・ファイルを開くか、新規のデータベース・ファイルを作成します。

    詳細は、アクションの構成ファイルを参照してください。

  2. 次の構文を使用してアクション定義を作成します。

       ACTION action_name
       {
         TYPE		action_type
         action_field
         …
       }

    action_name — アクションを実行するのに使用する名前

    action_type — COMMAND (デフォルト)、MAP、または TT_MSG

    action_field — この型のアクションの必須または省略可能なフィールドの 1 つ。すべてのフィールドは、キーワードと値から成ります。ほとんどのアクション・フィールドについて、この章で説明します。

    詳細は、dtactionfile(4) のマニュアル・ページを参照してください。

  3. ファイルを保存します。

  4. アクション・アイコンが一意のイメージを持つようにするには、アクションのアイコンを作成します。アイコンのデフォルトの位置は次のとおりです。

  5. [デスクトップツール] アプリケーション・グループにある [アクションの再読込み] をダブルクリックします。

  6. アクションのアクション・ファイルを作成します。アクション・ファイルは、アクションを表すアイコンをファイル・マネージャまたはアプリケーション・マネージャに作成します (アプリケーションを起動するようにアクションが書かれている場合、アイコンは「アプリケーション・アイコン」と呼ばれます)。

アクション・ファイルを作成するには、action_name と同じ名前の実行可能ファイルを作成します。書き込み権を持っているディレクトリに、そのファイルを置くことができます。アクション・ファイルは、好きな数だけ作成できます。

COMMAND アクションの作成例

次の手順は、リモート・システム AppServerA にある FAX アプリケーションを起動する個人用アクションを作成します。FAX アプリケーションを起動するコマンドは、次のとおりです。

/usr/fax/bin/faxcompose [filename]
  1. ファイル HomeDirectory/.dt/types/Fax.dt を作成します。

  2. 次のアクション定義をファイルに記述します。

       ACTION FaxComposer
        {
          TYPE					COMMAND
          ICON					fax
          WINDOW_TYPE			NO_STDIO
          EXEC_STRING			/usr/fax/bin/faxcompose -c %Arg_1%
          EXEC_HOST     	 	AppServerA
          DESCRIPTION    	Runs the fax composer
        }

    WINDOW_TYPE フィールドと EXEC_STRING フィールドは、アクションの動作を説明します。

    WINDOW_TYPENO_STDIO キーワードは、アクションが端末エミュレータ・ウィンドウで実行する必要がないように指定します。

    詳細は、アクションのウィンドウ・サポートの指定を参照してください。

    EXEC_STRING — 構文 %Arg_1% は、ドロップされたファイルを受け取ります。アクション・アイコンをダブルクリックすると、アクションは空の FAX 作成ウィンドウを開きます。

    詳細は、COMMAND アクションの実行文字列の作成を参照してください。

  3. ファイルを保存します。

  4. アイコン・エディタを使用して、HomeDirectory/.dt/icons ディレクトリに、次のアイコン・イメージ・ファイルを作成します。

    • fax.m.pm、サイズ 32x32 ピクセル

    • fax.t.pm、サイズ 16x16 ピクセル

  5. [デスクトップツール] アプリケーション・グループにある [アクションの再読込み] をダブルクリックします。

  6. 書き込み権を持っているディレクトリ (たとえば、ホーム・ディレクトリ) に FaxComposer という名前の実行可能ファイルを作成します。

MAP アクションの作成例

FAX 送信するほとんどのファイルがテキスト・エディタで作成され、データ型 TEXTFILE (ファイル名は *.txt) であるものとします。

次の手順は、データ型の [選択] メニューに Fax メニュー項目を追加します。

  1. 前節で作成したファイル HomeDirectory/.dt/types/Fax.dt を開きます。

  2. 次のマップ・アクション定義をファイルに追加します。

       ACTION Fax
        {
          ARG_TYPE		TEXTFILE
          TYPE				MAP
          MAP_ACTION		FaxComposer
        } 
  3. ファイルを保存します。

  4. TEXTFILE のデータ属性定義を /usr/dt/appconfig/types/language/dtpad.dt から新規ファイル HomeDirectory/.dt/types/textfile.dt にコピーします。Fax アクションを ACTIONS フィールドに追加します。

       DATA_ATTRIBUTES TEXTFILE
        {
          ACTIONS			Open,Print,Fax
          ICON				Dtpenpd
          …
        }
  5. ファイルを保存します。

  6. アプリケーション・マネージャを開き、[デスクトップツール] アプリケーション・グループにある [アクションの再読込み] をダブルクリックします。

アクションとデータ型データベースを再読み込みするには

新規または編集されたアクション定義を有効にするには、デスクトップはデータベースを再読み込みしなければなりません。次のいずれかを実行します。

    [デスクトップツール] アプリケーション・グループを開き、[アクションの再読込み] をダブルクリックします。

    次のコマンドを実行します。

       dtaction ReloadActions

    ReloadActions は、アイコンのラベルが [アクションの再読込み] であるアクション名です。

アクション・データベースは、次の操作を実行する場合にも再読み込みされます。

アクションのアクション・ファイル (アイコン) の作成

「アクション・ファイル」は、ファイル・マネージャまたはアプリケーション・マネージャにあるアクションを視覚的に表現するために作成されるファイルです。

図 12–1 アプリケーション・マネージャにある「アクション・ファイル」

Graphic

アクション・ファイルのアイコンはアクションを表現するので、「アクション・アイコン」と呼ぶこともあります。基本となるアクションがアプリケーションを起動する場合、アクション・ファイル・アイコンを「アプリケーション・アイコン」と呼びます。

アクション・アイコンをダブルクリックすると、アクションを実行します。アクション・アイコンはドロップ領域にもなります。

アクション・ファイル (アクション・アイコン) を作成するには

    アクション名と同じ名前の実行可能ファイルを作成します。ファイルの内容は関係ありません。

たとえば、次のようなアクション定義の場合、アクション・ファイルは MyFavoriteApp という名前の実行可能ファイルになります。

ACTION  MyFavoriteApp
 {
 	EXEC_STRING				Mfa -file %Arg_1%
 	DESCRIPTION				Runs MyFavoriteApp
 	ICON						Mfapp
 }

ファイル・マネージャとアプリケーション・マネージャでは、MyFavoriteApp ファイルはアイコン・イメージ Mfapp.size.type を使用します。MyFavoriteApp のアイコンをダブルクリックすると、アクションの実行文字列を実行し、アイコンのアイテムヘルプは DESCRIPTION フィールド (Runs MyFavoriteApp) の内容になります。

アクション・ラベル

アクション定義に LABEL フィールドが含まれている場合、ファイル・マネージャとアプリケーション・マネージャでは、ファイル名 (action_name) ではなく、このフィールドの内容によってアクション・ファイルにラベルが付けられます。たとえば、アクション定義に次のものが含まれる場合、アクション・アイコンには Favorite Application というラベルが付けられます。

ACTION  MyFavoriteApp
 {
 	LABEL      Favorite Application
 	…
 }

アクションが使用するアイコン・イメージの指定

ICON フィールドを使用して、アクション用に作成されたアクション・アイコン用にファイル・マネージャとアプリケーション・マネージャで使用するアイコンを指定します。

アイコンを指定しない場合、システムはデフォルトのアクション・アイコン・イメージ・ファイル /usr/dt/appconfig/icons/language/Dtactn.* を使用します。

図 12–2 デフォルトのアクション・アイコン・イメージ

Graphic

デフォルトのアクション・アイコンは、次のリソースを使用して変更できます。

*actionIcon:    icon_file_name

icon_file_name は、ベース名または絶対パスを指定できます。

ICON フィールドの値は、次のようになります。

表 12–1 アイコン名とアクション・アイコンのサイズ

サイズ (ピクセル単位) 

ビットマップ名 

ピックスマップ名 

48x48 

name.l.bm

name.l.pm

32x32 

name.m.bm

name.m.pm

16x16 

name.t.bm

name.t.pm

既存のアクション定義を変更するには

システムのどの使用可能なアクション (組み込みアクションも含む) も変更できます。


注 –

組み込みアクション・データベースを変更する際には注意してください。組み込みアクションは、デスクトップ・アプリケーション上で動作するように設計されています。


  1. 変更するアクション定義を検出します。

    アクション定義のデフォルトの位置は、次のとおりです。

    • 組み込みアクション: /usr/dt/appconfig/types/language

    • システム共通アクション: /etc/dt/appconfig/types/language

    • 個人用アクション: HomeDirectory/.dt/types

    システム位置が追加されている可能性もあります。アクション用にシステムが使用している位置のリストを参照するには、次のコマンドを実行します。

       dtsearchpath -v

    システムは、DTDATABASESEARCHPATH の下に表示されるディレクトリを使用します。

  2. 必要に応じて、アクション定義のテキストを、次のいずれかのディレクトリにある新規または既存のファイルにコピーします。

    • システム共通アクション: /etc/dt/appconfig/types/language

    • 個人用アクション: HomeDirectory/.dt/types

    /usr/dt/appconfig/types/language ディレクトリにあるファイルは編集してはいけませんので、組み込みアクションをコピーしなければなりません。

  3. アクション定義を編集します。

  4. 編集が終わったら、ファイルを保存します。

  5. [デスクトップツール] アプリケーション・グループにある [アクションの再読込み] をダブルクリックします。

アクション定義における優先順位

アクションを呼び出すと、システムはデータベースで一致するアクション名を検索します。その名前に対して 2 つ以上のアクションが存在する場合、システムはどちらを使用するかを決定するために優先規則を使用します。

たとえば、次のアクション定義の一部分について考えてみます。

ACTION EditGraphics
 # EditGraphics-1
 {
 	ARG_TYPE				XWD
 	…
 }
ACTION EditGraphics
 # EditGraphics-2
 {
 	ARG_COUNT  				0
 	…
 }
ACTION EditGraphics
 # EditGraphics-3
 {
 	ARG_TYPE  		*
     …
 }

EditGraphics アクション・アイコンをダブルクリックすると、引き数が指定されず ARG_COUNT 0 が優先されるので、EditGraphics-2 を起動します。XWD 型ファイル引き数を指定すると XWD ARG_TYPE が指定されるので、EditGraphics-1 が使用されます。EditGraphics-3 は、その他のファイル引き数すべてに対して使用されます。

COMMAND アクションの実行文字列の作成

COMMAND アクションには、必ず ACTIONEXEC_STRING の 2 つのフィールドが必要です。

ACTION action_name
 {
     EXEC_STRING execution_string
 }

実行文字列は、COMMAND アクション定義の最も重要な部分です。この文字列は、[端末エミュレータ] ウィンドウで実行するコマンド行と類似の構文を使用しますが、ファイルと文字列の引き数を処理するための追加構文も含みます。

実行文字列の一般的な機能

実行文字列には、次のものが含まれます。

アクション引き数

引き数は、コマンドまたはアプリケーションを適切に実行するのに必要な情報です。たとえば、テキスト・エディタでファイルを開くのに使用できるコマンド行について考えてみます。

dtpad filename

このコマンドでは、filenamedtpad コマンドのファイル引き数です。

アプリケーションやコマンドのように、アクションは引き数を持つことができます。COMMAND アクションが使用できるデータ型は、次の 2 つです。

実行文字列でのシェルの使用

実行文字列は、シェルを介してではなく直接実行されます。しかし、実行文字列でシェルを明示的に呼び出すことができます。

たとえば、次のようになります。

EXEC_STRING				\
 		/bin/sh -c \
 		'tar -tvf %(File)Arg_1% 2>&1 | \${PAGER:-more};\
 		echo "\\n*** Select Close from the Window menu to close ***"'

実行可能ファイルの名前または絶対パス

アプリケーションが PATH 変数にリストされているディレクトリにある場合は、単純な実行可能ファイル名を使用できます。アプリケーションが他にある場合は、実行可能ファイルへの絶対パスを使用しなければなりません。

引き数を使用しないアクションの作成

コマンド行からアプリケーションを起動するのに使用する EXEC_STRING に対しても同じ構文を使用します。

ドロップされたファイルを受け取るアクションの作成

ファイル引き数に対して、次のいずれかの構文を使用します。

%Arg_n%
%(File)Arg_n%

Arg_n に指定された引き数は (デフォルトでは) ファイルと見なされるので、(File) はオプションになります。(%(String)Arg_n% 構文の使用方法については、文字列としてのファイル引き数の解釈を参照してください。)

この構文により、アクション・アイコンにデータ・ファイル・オブジェクトをドロップし、そのファイル引き数でアクションを起動できます。コマンド行で n 番目の引き数を置き換えます。ローカル・ファイルまたはリモート・ファイルのどちらも使用できます。

ファイル引き数を要求するアクションの作成

ファイル引き数に対して、次の構文を使用します。

%(File)"prompt"% 

この構文は、アクション・アイコンをダブルクリックしたときに、ファイル名の要求を表示するアクションを作成します。

たとえば次の実行文字列は、wc -w コマンドのファイル引き数を要求するダイアログ・ボックスを表示します。

EXEC_STRING wc -w %(File)"Count words in file:"%

ドロップされたファイルを受け取るかファイルを要求するアクションの作成

ファイル引き数に対して、次のいずれかの構文を使用します。

%Arg_n"prompt"%
%(File)Arg_n"prompt"%

この構文は、次の動作を行うアクションを作成します。

たとえば次の実行文字列は、ドロップされたファイルで lp -oraw を実行します。アイコンをダブルクリックするとアクションが起動する場合、ダイアログ・ボックスが表示され、ファイル名を要求します。

EXEC_STRING lp -oraw %Arg_1"File to print:"%

非ファイル引き数を要求するアクションの作成

非ファイル・パラメータに対して、次のいずれかの構文を使用します。

%"prompt"%
%(String)"prompt"%

引用符で囲まれたテキストは、デフォルトでは文字列データとして解釈されるので、(String) はオプションになります。この構文は、非ファイル・データを要求するダイアログ・ボックスを表示します。ファイル名を要求するときは、この構文は使用しないでください。

たとえば、次の実行文字列は xwd コマンドを実行し、各ピクセルに追加される値を要求します。

EXEC_STRING xwd -add %"Add value:"% -out %Arg_1"Filename:"%

文字列としてのファイル引き数の解釈

引き数に対して次の構文を使用します。

%(String)Arg_n%

たとえば次の実行文字列は、コマンド lp -tbanner filename を使用して、ファイル名が入っているバナーとファイルを一緒に印刷します。

EXEC_STRING lp -t%(String)Arg_1% %(File)Arg_1"File to print:"%

アクションへのシェル機能の提供

次のように実行文字列にシェルを指定します。

/bin/sh -c 'command'
/bin/ksh -c 'command'
/bin/csh -c 'command'

複数のファイル引き数を処理する COMMAND アクションの作成

アクションが複数のファイル引き数を処理するには、次の 3 つの方法があります。

交換不可能な引き数を処理するアクションの作成

次の構文規約のいずれか 1 つを使用します。

交換可能なファイル引き数を処理するアクションの作成

次の構文規約のいずれか 1 つを使用します。

複数のドロップされたファイルを処理するアクションの作成

複数のドロップされたファイル引き数を受け取り、command file 1 file 2 … という形式のコマンド行を実行するには、次の構文を使用します。

%Args%

COMMAND アクションのウィンドウ・サポートと端末エミュレータ

COMMAND アクションがデスクトップ上でウィンドウをサポートするには、次の方法があります。

アクションのウィンドウ・サポートの指定

WINDOW_TYPE フィールドを使用して、アクションが必要とするウィンドウ・サポートの型を表 12–2 のように指定します。

表 12–2 WINDOW_TYPE フィールドと提供されているウィンドウ・サポート

WINDOW_TYPE

指定されているウィンドウ・サポート 

NO_STDIO

指定されません。アプリケーションがそれ自身のウィンドウを持っているか、コマンドが表示できる出力を持っていない場合は、NO_STDIO を使用します。

PERM_TERMINAL

常時端末エミュレータ・ウィンドウ。アクションは端末ウィンドウを開き、明示的に閉じるまで開いたままにします。ウィンドウにデータを入力できます。入力を行い、出力を作成し、その後終了するコマンド (たとえば ls directory など) で使用します。

TERMINAL

一時端末エミュレータ・ウィンドウ。アクションは端末ウィンドウを開き、コマンドが完了するとすぐに閉じます。全画面コマンド (たとえば vi など) で使用します。

端末エミュレータのコマンド行オプションの指定

アクション定義にある TERM_OPTS フィールドを使用して、端末エミュレータのコマンド行オプションを指定します。

たとえば、次のアクションは実行ホストをプロンプトします。

ACTION OpenTermOnSystemUserChooses
 {
 	WINDOW_TYPE					PERM_TERMINAL
 	EXEC_HOST    				%(String)"Remote terminal on:"%
 	TERM_OPTS    				-title %(String)"Window title:"%
 	EXEC_STRING  				$SHELL
 }

他のデフォルト端末エミュレータの指定

アクションが使用するデフォルトの端末エミュレータは dtterm です。これを別の端末エミュレータに変更できます。デフォルトの端末エミュレータは、アクションが使用する端末エミュレータを明示的に指定しないときに使用されます。

アクションが使用する端末エミュレータは、次のコマンド行オプションを持っていなければなりません。

特定の引き数へのアクションの制限

特定の型の引き数にアクションを制限すると、アクションが改良されます。たとえば、PostScript ファイル引き数に対してのみ PostScript ファイルのビューアを呼び出すようにアクションを制限すると便利です。つまり制限があると、PostScript ファイル以外を指定した場合、アクションはエラー・ダイアログを返します。

次のことに基づいてアクションを制限できます。

指定されたデータ型へのアクションの制限

ARG_TYPE フィールドを使用して、アクションが有効であるデータ型を指定します。データ属性名を使用します。

コンマでエントリを区切って、データ型のリストを入力できます。

たとえば、次のアクション定義は Gif データ型が作成されている場合の例です。

ACTION Open_Gif
 {
 	TYPE					COMMAND
 	LABEL					"Display Gif"
 	WINDOW_TYPE			NO_STDIO
 	ARG_TYPE				Gif
 	ICON					xgif
 	DESCRIPTION			Displays gif files
 	EXEC_STRING			xgif
 }

引き数の数に基づいたアクションの制限

ARG_COUNT フィールドを使用して、アクションが受け入れることができる引き数の数を指定します。有効な値は次のとおりです。

* (デフォルト) — 任意の数の引き数。その他の値は * よりも優先されます

n — 任意の負でない値 (0 を含む)

>nn よりも大きい引き数

<nn よりも小さい引き数

ARG_COUNT の使用方法の 1 つは、アイコンをダブルクリックするか、そのアイコンにファイルをドロップするかに応じて、異なるアクション・アイコン動作を提供することです。次の「異なるダブルクリック・アンド・ドロップ動作を提供するには」を参照してください。

異なるダブルクリック&ドロップ動作を提供するには

次の手順を使用して、ドロップされたファイルを受け取るアクションを作成しますが、アクション・アイコンをダブルクリックしてもファイルを要求しません。

  1. ダブルクリック機能のためのアクション定義を作成します。

    ARG_COUNT フィールドを使用して 0 引き数を指定します。ドロップされた引き数を受け取らない EXEC_STRING の構文を使用します。

  2. ドロップ機能のための 2 番目のアクション定義を作成します。

    ARG_COUNT フィールドを使用して >0 引き数を指定します。ドロップされたファイルを受け取る EXEC_STRING の構文を使用します。

    たとえば、次の 2 つのコマンド行は vedit という名前のエディタを起動するのに使用できるとします。

    • ファイル引き数を使用しないでエディタを起動するには、次のようにします。

          vedit
    • 読み専用ドキュメントとして開くファイル引き数でエディタを起動するには、次のようにします。

          vedit -R filename
    

次の 2 つのアクションは、Vedit という名前のアクションのためのドロップ&ダブルクリック機能を作成します。ARG_COUNT 0 は暗示的なドロップ機能定義の ARG_COUNT * よりも明確なので、データベースで一致するものを検索するときには、最初のアクションが優先されます。

# Double-click functionality
ACTION Vedit
 {
 	TYPE						COMMAND
 	ARG_COUNT				0
 	WINDOW_TYPE				PERM_TERMINAL
 	EXEC_STRING				vedit
 }

# Drop functionality
ACTION Vedit
 {
 	TYPE						COMMAND
 	WINDOW_TYPE				PERM_TERMINAL
 	EXEC_STRING				vedit -R %Arg_1%
 }

引き数のモードに基づいたアクションの制限

ARG_MODE フィールドを使用して、引き数の読み取りまたは書き込みモードを指定します。有効な値は次のとおりです。

* (デフォルト) — 任意のモード

!w — 書き込み不可

w — 書き込み可能

リモート・システムでアプリケーションを実行するアクションの作成

アクションとリモート実行について説明する場合、次の 2 つの用語がよく使用されます。

データベース・ホスト — アクション定義が入っているシステム

実行ホスト — 実行可能ファイルを実行するシステム

ほとんどの場合、アクションとそのアプリケーションは同じシステム上にあります。つまり、アクションのデフォルトの実行ホストはデータベース・ホストであるため、特別な構文は必要ありません。

しかし、実行ホストがデータベース・ホストと異なる場合、アクション定義はどこで実行文字列を実行するか指定しなければなりません。

異なるシステム上にアクションとアプリケーションを配置するための機能は、デスクトップのクライアントサーバ・アーキテクチャの一部です。ネットワーク・アプリケーションの詳細は、アプリケーション・サービスの管理を参照してください。

リモート・アプリケーションを実行するアクションの作成

アクション定義 EXEC_HOST フィールドを使用して、アプリケーションの位置を指定します。

EXEC_HOST の有効な値は次のとおりです

%DatabaseHost% — アクションが定義されるホスト

%LocalHost% — アクションが呼び出されるホスト (「セッション・サーバ」)

%DisplayHost% — X サーバを実行中のホスト (X 端末では使用できません)

%SessionHost% — コントロールを行うログイン・マネージャが実行中のホスト

hostname — 名前付きホスト。アクションが 1 つの特定ホスト上に必ず呼び出される環境でこの値を使用します

%"prompt"% — アクションが呼び出されるたびにホスト名をプロンプトします。

デフォルト値は、%DatabaseHost%%LocalHost% です。したがって、EXEC_HOST フィールドが削除されると、アクションはアクション定義が入っているホストで最初にコマンドの実行を試みます。これに失敗すると、アクションはセッション・サーバでコマンドの実行を試みます。

アクションとデータ型定義での変数の使用

文字列変数と環境変数をアクションおよびデータ型定義ファイルに含むことができます。

アクションでの文字列変数の使用

文字列変数定義は、定義の位置からファイルの最後まで有効です。データベース用のグローバルな文字列変数はありません。

文字列変数と環境変数が同じ名前の場合は、文字列変数が優先されます。

文字列変数を定義するには

    次の構文を使用します。

   set variable_name=value

変数名に英数字と下線文字 (_) を使用できます。各変数定義は、別の行になければなりません。

たとえば次のようになります。

set Remote_Application_Server=sysapp
set Remote_File_Server=sysdata

文字列変数を参照するには

    次の構文を使用します。

   $[{]variable_name[}]

たとえば次のようになります。

EXEC-HOST			$Remote_Application_Server
CWD					/net/${Remote_File_Server}/doc/project

アクションとデータ型での環境変数の使用

    次の構文を使用して環境変数を参照します。

   $[{]variable[}]

データベースが読み込まれると、変数は拡張されます (その値に置き換わります)。文字列変数と環境変数が同じ名前の場合は、文字列変数が優先されます。

たとえば、次の実行文字列はログイン名が入っているバナーでファイルを印刷します。

EXEC-STRING lp -t$LOGNAME %(File)Arg_1%

コマンド行からのアクションの呼び出し

デスクトップは、コマンド行からアクションを実行するための dtaction コマンドを提供します。dtaction を使用して、次の部分からアクションを実行できます。

dtaction の構文

dtaction [-user user_name] [-execHost hostname] action_name [argument [argument]…]

-user user_name — 別のユーザとしてアクションを実行するための機能を提供します。dtactionuser_name 以外のユーザによって呼び出される場合、パスワードのプロンプトが表示されます。

-execHost hostnameCOMMAND アクションの場合のみ。コマンドが実行されるホストを指定します。

argument — アクションに対する引き数。通常はファイル引き数です。

dtaction クライアントは、追加のコマンド行オプションを持っています。詳細は、dtaction(1) のマニュアル・ページを参照してください。

異なるアクションを実行するアクションの作成

アクションの EXEC_STRING にある dtaction を使用します。

たとえば、次のアクションは Spell という名前の組み込みアクション (アクションはアプリケーション・マネージャで「スペルチェック」というラベルが付けられます) を使用します。新規アクションは、テキスト・エディタと Spell アクションを実行し、別の端末エミュレータ・ウィンドウにスペルミスを表示します。

ACTION EditAndSpell
 {
 	WINDOW_TYPE				NO_STDIO
 	EXEC_STRING				/bin/sh -c 'dtaction Spell \
 								%Arg_1"File:"%; dtpad %Arg_1%'
 }

別のユーザとして実行するアクションの作成

EXEC_STRING にある次の構文を使用します。

EXEC_STRING   dtaction -user user_name action_name [file_argument]

新規ユーザ (user_name は、次のいずれかの機構を介してディスプレイをシステムへアクセスしなければなりません。

たとえば、次の 2 つのアクションは、root になるための機能と app-defaults ファイルを編集するための機能を提供します。

ACTION AppDefaults
 {
 	WINDOW_TYPE				NO_STDIO
 	EXEC_STRING				/usr/dt/bin/dtaction -user root \
 								EditAppDefaults %Arg_1"File:"%
 }

ACTION EditAppDefaults
 {
 	WINDOW_TYPE				TERMINAL
 	EXEC_STRING				/bin/sh -c 'chmod +w %Arg_1%; \
 								vi %Arg_1%; chmod -w %Arg_1%'
 }

ローカライズされたアクションの作成

データ型の検索パスには、言語に依存する位置も含まれています。デスクトップは、LANG の値を使用して、データ型定義が検索される位置を決定します。

ローカライズされたアクションの位置

ローカライズされたアクション定義は、アクション検索パスに応じて適切な言語に依存するディレクトリに置かなければなりません。

デフォルトの検索パスは次のとおりです。

既存のアクションをローカライズするには

  1. 適切な言語に依存するディレクトリ (たとえば、/etc/dt/appconfig/types/japanese) にファイルを作成します。

  2. アクション定義を言語に依存する構成ファイルにコピーします。

    たとえば、アクション定義を、

       
    app_root/dt/appconfig/types/C/file.dt

    から

       
    app_root/dt/appconfig/types/japanese/newfile.dt

    にコピーします。

  3. LABEL フィールドを追加するか、既存の LABEL フィールドを変更します。

       LABEL			string
    

    アプリケーション・マネージャとファイル・マネージャは、ラベル文字列を使用してアクションのアイコンを識別します。

  4. アクション定義にある次のいずれかのフィールドをローカライズします。

    • ローカライズされたアイコンの場合: ICON

    • ローカライズされたアイテムヘルプの場合: DESCRIPTION

    • ローカライズされたプロンプトの場合: EXEC_STRING にある引用符で囲まれたテキスト

ToolTalk アプリケーションのアクションの作成


注 –

次の情報は、ToolTalk メッセージをサポートするアプリケーションに対してのみ適用されます。


TT_MSG アクション型を使用して、ToolTalk メッセージを送信するアクションを作成します。

ACTION action_name
{
 	TYPE		TT_MSG  
 	… 
}

addressing フィールドと disposition フィールド

サポートされていないメッセージ

TT_MSG アクション型がサポートしていないものは、次のとおりです。

TT_MSG アクションのキーワード

表 12–3 に、キーワードと TT_MSG アクションの使用法を示します。

表 12–3 TT_MSG アクション・キーワードと使用法

キーワード 

使用法 

TT_CLASS

ToolTalk class メッセージ・フィールドの値を定義します。 

TT_SCOPE

ToolTalk scope メッセージ・フィールドの値を定義します。 

TT_OPERATION

ToolTalk operation メッセージ・フィールドの値を定義します。 

TT_FILE

ToolTalk file メッセージ・フィールドの値を定義します。 

TT_ARGn_MODE

n 番目のメッセージ引き数の ToolTalk mode 属性の値を定義します。

TT_ARGn_VTYPE

n 番目のメッセージ引き数の ToolTalk vtype 属性の値を定義します。

TT_ARGn_VALUE

n 番目のメッセージ引き数の値を定義します。