第 1 章「基本的なアプリケーションの統合方法」では、基本的な統合方法および印刷機能について説明します。
基本的なアプリケーションの統合方法は、実行することが強く推奨されるタスクのセットです。
基本的な統合方法には、デスクトップのアプリケーション・プログラマ・インタフェース(API)の拡張使用は含まれません。したがって、ドラッグ&ドロップ、セッション管理、ToolTalk メッセージ、アクションおよびデータ型データベースへのプログラムのアクセスなど、デスクトップとの他の相互作用は提供されません。
この章で説明する統合方法の作業の一部は、ソースコードの変更を必要とします。それらはオプションですが、基本的な統合方法の作業と密接な関係があるため、ここで説明します。
基本的なアプリケーションの統合方法には、エンドユーザ向けの次のような特徴があります。
デスクトップ上のアプリケーションを探して起動するためのグラフィカルな方法
アプリケーションはデスクトップ登録パッケージを提供し、インストール・スクリプトはアプリケーションを自動的に登録します。
登録によって、アプリケーション・マネージャのトップ・レベルにアプリケーション・グループが作成されます。アプリケーション・グループにはアイコンがあり、ユーザがアイコンをダブルクリックすると、アプリケーションが起動します。
アプリケーションのデータ・ファイルを認識し、操作する機能
アプリケーションは、データ・ファイルにデータ型を提供します。
データ型定義は、データ・ファイルが固有のアイコンを使うように構成して、データ・ファイルを見分けやすくします。また、データ・ファイルは、意味があるデスクトップ動作も持っています。たとえば、ユーザは、データ・ファイルをダブルクリックすることによってアプリケーションを起動したり、デスクトップのプリンタ・ドロップ領域にデータ・ファイルをドロップして、適切な印刷コマンドを使用してファイルを印刷できます。
アプリケーションは、インタフェースのフォントと、バックグラウンド、フォアグラウンド、およびシャドウの色を動的に変更します。
デスクトップは、対応するアプリケーション固有のリソースがない場合に使われる一般的なインタフェースのフォントおよびカラーのリソースを定義します。
基本的な統合方法では、システム管理者に次のような利点を提供します。
インストールと登録が容易
インストール時に、アプリケーションは自動的に登録されます。他にシステム管理者がしなければならないことはほとんどありません。
運用時の管理が容易
デスクトップの構成ファイルはすべて、一カ所に集められます。また、たとえば管理者がアプリケーションを更新したい場合や、別のアプリケーション・サーバに移動したい場合には、アプリケーションの登録解除が簡単にできます。
基本的な統合に必要な作業の大部分は、既存のアプリケーションをデスクトップに統合するシステム管理者によって実行されます。したがって、基本的な統合方法の説明の大部分は、『Solaris 共通デスクトップ環境 上級ユーザ及びシステム管理者ガイド』の第 5 章「アプリケーションの登録」にあります。
この章では、その説明の概要を紹介し、アプリケーション・プログラマ向けの追加説明をします。
基本的な統合に必要な一般的な作業は次のとおりです。
フォントとカラーを設定するアプリケーションのリソースを変更する。これによってユーザは、スタイル・マネージャを使ってアプリケーションのインタフェース・フォントおよびカラーを変更できます。
『Solaris 共通デスクトップ環境 上級ユーザ及びシステム管理者ガイド』の第 5 章「アプリケーションの登録」の「フォント・リソースおよびカラー・リソースの変更」の節を参照してください。
アプリケーションのための登録パッケージを作成する。
「アプリケーションのための登録パッケージの作成」と、『Solaris 共通デスクトップ環境 上級ユーザ及びシステム管理者ガイド』の第 5 章「アプリケーションの登録」を参照してください。
登録パッケージ・ファイルをインストールし、登録手順を実行するように、アプリケーションのインストール・スクリプトを変更する。
『Solaris 共通デスクトップ環境 上級ユーザ及びシステム管理者ガイド』の第 5 章「アプリケーションの登録」の 「dtappintegrate を使用したアプリケーションの登録」の節を参照してください。
ネットワークおよびローカル・プリンタでアプリケーション・データ・ファイルを印刷する。デスクトップ・プリンタ・モデルは、印刷のためのグラフィカルな方法をユーザに提供し、UNIX の lp サービスの本来のネットワーク機能の上に構築されます。
ユーザが使用できる印刷機能は、統合のレベルによって異なります。統合には、次の 3 つのレベルがあります。
完全な統合。
アプリケーションのソースコードを変更する能力がある場合には、完全な統合を行なってください。
完全な印刷統合を行うと、ユーザはデータ・ファイルをプリンタ・ドロップ領域 (フロントパネルのプリンタとプリント・マネージャのプリンタ・アイコン) にドロップすることによって、さまざまなプリンタで印刷できます。その他の特定のデスクトップ動作も実現します (「デスクトップ印刷環境変数」を参照してください)。
部分的な統合。
アプリケーションのソースコードを変更する能力はないが、アクションによって印刷機能を呼び出すことができる場合には、部分的な統合を行なってください。
部分的な統合をした場合、アプリケーションは完全統合機能の一部分の機能を提供します。たとえば、LPDEST 環境変数を使用することによって、アプリケーションの印刷機能は、印刷の出力先をドロップ領域から獲得します。
統合なし。
アプリケーションがデータ・ファイルの印刷アクションを提供できない場合には、ユーザがファイルをプリンタ・ドロップ領域にドロップしたときにエラー・ダイアログ・ボックスを表示するように、データ・ファイルを構成しなければなりません。
完全な印刷統合をするためには、アプリケーションは次の条件を備えていなければなりません。
[印刷] アクションを提供する。
4 つのデスクトップ印刷環境変数を使用する。
完全に統合された印刷機能を持つためには、アプリケーションは、次の 4 つの環境変数を参照しなければなりません。LPDEST 変数は、とくに重要です。これによってユーザは、特定のプリンタ・ドロップ領域を使用して印刷の出力先を選択できます。
印刷アクションは、登録パッケージの一部分であり、構成ファイル app_root/dt/appconfig/types/<language>/name.dt の中で提供されます。
印刷アクションが、「デスクトップ印刷環境変数」で示した 4 つの環境変数を参照するプログラムを実行する場合には、データ型は完全に統合されています。印刷アクションは、アプリケーションのデータ型に応じて書かなければならず、1 つのファイルだけを受け入れなければなりません。
たとえば、次の印刷アクションは、ThisAppData という名前のデータ型に固有です。
ACTION Print { ARG_TYPE ThisAppData EXEC_STRING print_command -file %(file)Arg_1% } |
アプリケーションが ToolTalk の印刷要求を処理する場合には、印刷アクションは、次のアクションの変形で送ることができます。(4 つの環境変数のどれかが設定されていない場合には、対応するメッセージ引き数はヌルになります。メッセージ引き数がヌルのときのデフォルトの解釈については、「デスクトップ印刷環境変数」を参照してください。)
デスクトップ印刷ユーティリティ /usr/dt/dtlp は、lp サブシステムに基づく機能を提供します。lp の印刷オプションを集めて、指定されたファイルを印刷します。
次の条件のどちらかに該当する場合には、アプリケーションは dtlp を使用できます。
プリンタに送る前にデータ・ファイルを処理する必要がない。
アプリケーションがデータ・ファイルを印刷できる形式に変換するためのフィルタを備えている。
dtlp の詳細は、dtlp(1)の マニュアル・ページを参照してください。
ファイルを印刷する準備ができている場合には、印刷アクションは、EXEC_STRING の中で dtlp を実行します。たとえば、次のようにします。
ACTION Print { ARG_TYPE ThisAppData EXEC_STRING dtlp %Arg_1% }
アプリケーションが変換フィルタを備えている場合には、dtlp を実行する前にフィルタが実行されなければなりません。たとえば、次のようにします。
ACTION Print { ARG_TYPE MyAppData EXEC_STRING /bin/sh `cat %Arg_1%| filter-name | dtlp` }
filter_name は、印刷フィルタ名です。
部分的な印刷統合をするためには、アプリケーションは、次のものを提供しなければなりません。
印刷アクション
どの印刷環境変数がアクションによって処理されるかによって印刷が統合される範囲
部分的な印刷統合を提供するためには、アプリケーションは、次の形式の印刷用コマンドを提供しなければなりません。
print_command[options]-file filename
options は、印刷環境変数のいくつかまたはすべてを参照する、あるいはどれも参照しないためのメカニズムを提供します (「デスクトップ印刷環境変数」を参照してください)。
この印刷用コマンドのもっとも単純な形式では、オプションを省略します。
print_command -file filename
このコマンド行を使うと、ユーザは、デスクトップのプリンタ・ドロップ領域を使用してアプリケーションのデータ・ファイルを印刷できます。ただし、印刷の出力先は、ドロップ領域によって設定されません。また、環境変数によって設定されたその他の印刷動作は実装されません。たとえば、デスクトップは直接サイレント印刷を行なったり、一時ファイルを削除したりできません。
印刷用コマンドでデスクトップ印刷環境変数に対応する別のコマンド行オプションを提供する場合には、別の統合を提供できます。
たとえば、次のコマンド行は LPDEST を参照する能力を提供します。
print_command [-d destination] [-file filename]
destination は、出力先プリンタです。
次の印刷コマンド行は、4 つの変数すべてを参照するためのオプションを提供します。
print_command [-d destination] [-u user_file_name] [-s] [-e] -file filename
user_file_name |
画面に表示されるファイル名 |
-s |
サイレント印刷 ( [印刷] ダイアログ・ボックスは表示されません。) |
-e |
印刷後にファイルは削除されます。 |
参照はアクション定義で発生します。詳細は、「デスクトップ印刷環境変数」を参照してください。
アクションは 4 つの環境変数を参照できないが、対応するコマンド行オプションをとることができる場合について、この項では、環境変数をコマンド行オプションに変換する方法を説明します。
たとえば、次の例は LPDEST を参照する簡単な印刷アクションです。
ACTION Print { ARG_TYPE data_type EXEC_STRING print_command -d $LPDEST -file %(file)Arg_1% }
ただし、この印刷アクションは、LPDEST が設定されていない場合には予測できない動作をすることがあります。
変数が設定されていないときに適切な動作を提供する印刷アクションを作成するための 1 つの方法は、印刷アクションが使うシェル・スクリプトを作成することです。
たとえば、次のアクションとそれが使用するスクリプトは、4 つの環境変数すべてを正しく処理します。
ACTION Print { ARG_TYPE data_type EXEC_STRING app_root/bin/envprint %(File)Arg_1% }
#!/bin/sh # envprint - sample print script DEST="" USERFILENAME="" REMOVE="" SILENT="" if [ $LPDEST ] ; then DEST="-d $LPDEST" fi if [ $DTPRINTUSERFILENAME ] ; then USERFILENAME="-u $DTPRINTUSERFILENAME" fi DTPRINTFILEREMOVE=echo $DTPRINTFILEREMOVE | tr "[:upper:]" "[:lower:]"` if [ "$DTPRINTFILEREMOVE" = "true" ] ; then REMOVE="-e" fi DTPRINTSILENT=`echo $DTPRINTSILENT | tr "[:upper:]" "[:lower:]"` if [ "$DTPRINTSILENT" = "true" ] ; then SILENT="-s" fi print_command $DEST $USERFILENAME $REMOVE $SILENT -file $1
アプリケーションがデスクトップと印刷機能を統合しない場合には、データ・ファイルを正しく印刷するために、ユーザがアプリケーションを開かなければなりません。
それでもやはり、アプリケーションのデータ・ファイルをプリンタ・ドロップ領域にドロップするときに動作する印刷アクションを提供するべきでしょう。さもなければ、デスクトップはファイルがテキスト・データを含むとみなして、印刷出力を勝手に行います。
デスクトップは、この目的のために [印刷なし] という印刷アクションを提供します。[印刷なし] アクションは、プリンタ・ドロップ領域を使用してデータ・ファイルを印刷できないことをユーザに知らせるダイアログ・ボックスを表示します。
[印刷なし] アクションは、 [印刷できません] ダイアログ・ボックスを表示します。
[印刷できません] ダイアログ・ボックスを使用するには、[印刷なし] アクションにマップされる、データ型に固有の印刷アクションを作成します。たとえば、アプリケーションのデータ型を次のように仮定します。
DATA_ATTRIBUTES MySpreadSheet_Data1 { - }
次の印刷アクションは、このデータ型の [印刷なし] にマップされます。
ACTION Print { ARG_TYPE MySpreadSheet_Data1 TYPE MAP MAP_ACTION NoPrint }
アプリケーションのために作成するデスクトップ登録パッケージは、アプリケーションのインストール・パッケージの一部にならなければなりません。登録パッケージを作成するための手順は、既存のアプリケーションをデスクトップに統合するシステム管理者によって実行されます。これらの手順については、『Solaris 共通デスクトップ環境 上級ユーザ及びシステム管理者ガイド』の第 5 章「アプリケーションの登録」に説明があります。