共通デスクトップ環境 スタイル・ガイド

第 3 章 ドラッグ&ドロップ

ドラッグ&ドロップにより、コンピューティング環境の中のオブジェクトを直接操作できます。この章では、アプリケーションにドラッグ&ドロップを組み込むためのガイドラインについて説明します。アプリケーションでドラッグ&ドロップやアタッチメントを使用する場合は、この章を読んでください。

OSF/Motif スタイル・ガイド リリース 1.2』で扱われている Motif 1.2 のドラッグ&ドロップについて理解しておく必要があります。まだ読んでいない読者は、その 4.3.4 項の「ドラッグ転送」を読んでください。『OSF/Motif スタイル・ガイド リリース 1.2』と、この章に食い違いがある場合は、この章の方を優先します。

ドラッグ&ドロップ・ユーザ・モデル

コンピューティング環境の中のオブジェクトを直接操作することは、コンピュータをコントロールしていると感じることができ、新しい操作を試みるのが楽になったり、コンピュータ一般に親しみが持てるようになるという効果があります。また、多くの操作を行う上で、これはより効率の高い操作方法でもあります。

ドラッグ&ドロップ・ユーザ・モデルを理解するためには、次の用語を理解しておく必要があります。

ドロップ領域

ドロップされたアイコンを受け入れる、ワークスペースの中の領域。ドロップ領域は、ごみ箱コントロールや印刷マネージャ・コントロールなど、通常はコントロールまたはアイコン・グラフィックによって表現されます。

ドラッグ・アイコン

ドラッグ中に使用される複合カーソル。詳細は、「ドラッグ・アイコンの各部分」を参照してください。

共通デスクトップ環境でユーザは、ファイル・マネージャのアイコン、メール・プログラムのメール・メッセージとアタッチメント、カレンダのアポイント、テキスト・エディタやテキスト・フィールド内のテキストを選択し、ドラッグできます。これらの項目は、それを受け入れる任意のドロップ領域にドロップできます。たとえば、ファイル・マネージャのドキュメント・アイコンは、ファイル・マネージャの中のフォルダ・アイコン上や、フロントパネルの印刷マネージャ・アイコン上や、メール・プログラムのアタッチメント・リスト上にドロップできます。

項目がドロップされると、ドロップされた項目に対する何らかのアクションが実行されます。たとえば、ドキュメントが印刷、移動あるいは接続されます。実行されるアクションは、ドラッグされたオブジェクトと、ドロップ先の場所によって変わります。

推奨 

dq: 

アイコンで表現されるすべてのオブジェクトには、ドラッグ&ドロップ (DND) 方式を用意しなければならない。ユーザが直接に操作できるすべての要素について、DND 方式を用意する。 

推奨 

dr: 

アプリケーションがドラッグ&ドロップを通してサポートする基本機能は、すべてメニュー、ボタン、またはダイアログ・ボックスによってもサポートされる。 

ドラッグ&ドロップは、アプリケーションの中でサポートされている他のユーザ・インタフェース・コントロールを通してアクセス可能な機能に対するアクセラレータと見なされます。ドラッグ&ドロップだけでしかサポートされていない基本操作が存在してはなりません。 

ドラッグ&ドロップ・フィードバック

ユーザに対する視覚的なフィードバックは、ドラッグ&ドロップを機能させるための重要な要素の 1 つです。明快な視覚的フィードバックがないと、ドラッグ&ドロップ操作の結果を予測することが困難になります。また、視覚的なフィードバックはタイミングよく提供されなければなりません。

ユーザは、ドラッグ&ドロップ操作の際に、次の点を視覚的に識別できければなりません。

ドラッグされる項目のタイプ

ドラッグ&ドロップのビジュアル・フィードバックは、ユーザに見えるものをドラッグするという概念に基づいています。たとえば、ユーザがファイル・マネージャ内でフォルダ・アイコンを選択しドラッグを開始した場合は、図 3-1 に示すようにドラッグ・アイコンの一部としてフォルダ・アイコンが表示されなければなりません。

図 3-1 ドラッグ中のオブジェクトを示すドラッグ・アイコン

Graphic

必須 

dt: 

ドラッグ操作中に、アプリケーションは現在のポインタをドラッグ・アイコンに変更する。 

推奨 

du: 

ドラッグ操作中に、アプリケーションは現在のドラッグ・カーソルを、ソース・インジケータを取り込んだ形に変更する。 

これはだれにでもわかる動作に思えるかもしれませんが、何をドラッグしているのかがユーザにわかるようなフィードバックを提供することは、きわめて重要です。この種の一貫性を保つことで、ユーザにとってドラッグ&ドロップがより予期しやすいものになります。テキスト・ドラッグは、実際のテキストがドラッグされるわけではないという点で、この例外となります。図 3-2 にテキスト・ドラッグ・アイコンを示します。

図 3-2 テキスト・ドラッグ・アイコンの例

Graphic

アプリケーションは、ドラッグ・アイコンで使用されるグラフィックを用意する必要があります。このグラフィックは、通常は、ファイル・マネージャでドキュメントを表現するために使用される 32*32 アイコンのように、アプリケーションに付属するアイコンの 1 つです。使用されるグラフィックは、何がドラッグされているのかに依存します。

ユーザがドラッグを開始する前にアイコンを選択しなかった場合でも、特にドロップ時に出力先のアプリケーションが使用するグラフィックなど、関連性のあるグラフィックをドラッグ・アイコンに表示することをお勧めします。たとえば、カレンダの [アポイントエディタ] の中で、ユーザはスクロール・リストからアポイントを選択しますが、このスクロール・リストはアイコンを表示しません。この場合には、ドラッグ・アイコンの一部としてアポイント・アイコンが使用されます。アポイントがファイル・マネージャにドロップされると、ファイル・マネージャは同じグラフィックを使ってアポイントを表示します。

ドロップ領域

ユーザは、ドラッグ項目がいつ有効なドロップ領域の上にあるのかを知る必要があります。このフィードバックは、ドラッグ・アイコンとドロップ領域の 2 つが関連します。ドラッグ・アイコンは、ユーザがドラッグ・アイコンを有効なドロップ領域以外の場所に移動すると、矢印から無効ポインタに変わります。この動作はドラッグオーバ・フィードバックと呼ばれます。デスクトップ上では、無効なドロップ領域と、そもそもドロップ領域でない場所の間には区別がありません。図 3-3 にサンプルの無効ポインタ・ドラッグ・アイコンを示します。

図 3-3 無効ポインタ・ドラッグ・アイコンの例

Graphic

ドロップ領域フィードバック・オプション (ドラッグアンダ・フィードバックと呼ばれる) は、有効なドロップ領域を示すものです。このオプションには、サイトの周囲に実線を描く、ドロップ領域の周囲に射影の付いた縁を付けて、表面が出っ張ったり、へこんでいるように見せる、ドロップ領域の上にピックスマップを描画するという方法あります。射影の付いた縁には、ドロップ領域がへこんでいるように見せる効果があります。図 3-4 に、へこんでいる領域の例を示します。デスクトップ上では、ドラッグ・アイコンがドロップ領域の上にあり、それが有効なドロップ領域であることを示すのに、大部分のドロップ領域で、へこんでいる外観を使用します。

図 3-4 フロントパネルのドロップ領域フィードバックの例

Graphic

推奨 

dw: 

ドラッグ操作中に、アプリケーションは有効なドロップ領域であることを示すために、ドロップ領域フィードバックを変更する。 

推奨 

dv: 

ドラッグ操作中に、アプリケーションは無効なドロップ領域であることを示すために、現在のドラッグ・カーソルを変更する。アプリケーションは、共通デスクトップ環境の標準の無効ポインタを使用する。 

オプション 

dz: 

アプリケーションが使用するカーソル変更やドラッグオーバ効果は、マウス・ポインタがターゲット領域に達してから 0.2 秒以内に発生し、ドラッグ操作の対話形態には、表面上はまったく影響を与えない。 

結果として起こるアクション

共通デスクトップ環境では、ドラッグ・アイコンに関連付けられる操作が 3 つあります。これらの操作は、「ドラッグ・アイコンの各部分」で説明しています。ドラッグ・アイコンには、操作がコピーまたはリンクであるときに、それをユーザに通知するために使用される、デスクトップの一部として提供されている代替グラフィックがあります。デフォルトの操作である移動では、代替アイコン・グラフィックを使用する必要はありません。

成功または失敗

ユーザは、ドラッグ&ドロップ操作が成功したのか、失敗したのかを知る必要があります。ドロップの成功または失敗を表示するには、遷移効果を使用します。

遷移効果にはメルト スナップ・バックの 2 つの種類があります。メルト 効果は、ユーザがドラッグ・アイコンを有効なドロップ領域にドロップしたときに使用されます。この効果では、ドラッグ・アイコンがドロップ領域に溶けこむように見えます。ドラッグ・アイコンは消え、出力先のアプリケーションに応じた何らかの表示に置き換えられます。ドラッグ・アイコンをフロントパネル上の [印刷マネージャ] コントロールにドロップすると、メルト効果だけが表示されます。ドラッグ・アイコンを [ファイルマネージャ] コントロールにドロップすると、メルト効果が表示された後に、ファイル・マネージャにアイコンが表示されます。

スナップ・バック効果は、ドロップが失敗したときに使用されます。ドロップが失敗するのは、ドロップ領域が無効である場合と、データ転送が失敗した場合の 2 つです。ユーザがドラッグ・アイコンを、無効ポインタ・ドラッグ・アイコンを表示している無効なドロップ領域の上にドロップすると、ドラッグ・アイコンはソース・アプリケーションにスナップ・バックします。

ドロップが行われると、ソースと出力先のアプリケーションは、データを転送しなくてはなりません。データ転送が失敗した場合に、出力先アプリケーションは 2 つの処理を行わなくてはなりません。まず、ドロップ項目がソース・アプリケーションにスナップ・バックされるように、ドロップが失敗したことを API に通知する必要があります。次に、ドロップが失敗した理由と、ユーザがこの状況を修正するにはどうすればいいのかをはっきりと知らせるエラー通知をユーザに表示しなければなりません。

遷移効果は、即座には行われないことがあります。アイコンは、転送が終了するまで、ドロップされた場所に表示されます。この間に、アプリケーションはカーソルをビジー状態にしておかなければなりません。転送が完了するまで、ユーザはそのアイコンを移動したり、選択することはできません。ビジー・カーソルは、ユーザに、転送の実行中であることを知らせます。

推奨 

ea: 

ドラッグによって実行できるコピー、移動、またはリンク操作をサポートするコレクションでは、ドラッグ操作中にユーザに表示するフィードバックが、単一のオブジェクトが操作されているのか、複数のオブジェクトが操作されているのかを表示する。 

必須 

eb: 

転送に成功すると、データはドロップ領域に格納され、アプリケーションが使用した転送アイコンはすべて削除される。 

必須 

ec: 

アプリケーションがドラッグ&ドロップの完了時にデータを削除する場合には、ドラッグ&ドロップ転送が成功して完了した場合にのみ削除を行う。 

必須 

ed: 

転送が失敗した後、データはドラッグのソースに残り、ドロップ領域には格納されない。アプリケーションが使用した転送アイコンは、すべて削除される。 

推奨 

ee: 

ユーザがアプリケーションのウィンドウ内の不適当なドロップ領域にオブジェクトをドロップした場合、アプリケーションはスナップ・バック効果の表示処理に参加し、ドロップが実行できなかった理由を示すエラー・ダイアログ・ボックスを表示する。 

必須 

6-17: 

アプリケーションに、ドラッグ&ドロップのヘルプ・ダイアログ・ボックスを用意する場合は、実行中のドラッグ&ドロップ操作を取り消すための [取消し] ボタンを格納する。 

ドラッグ・アイコンの各部分

ドラッグ・アイコンは、図 3-5 に示すように、3 つの部分で構成されています。ドラッグ・アイコンは、左から順に、状態インジケータと、操作インジケータと、ソース・インジケータ (この例ではフォルダ・アイコンを表示) で構成されます。右のアイコンは、これらを合成したドラッグ・アイコンです。

図 3-5 ドラッグ・アイコンの 3 つの部分の例

Graphic

状態インジケータ

状態インジケータは、実際には、有効あるいは無効なドロップ領域インジケータと組み合わされた、配置のためのポインタです。有効状態インジケータは、ユーザがカーソルを予期通りの方法で配置できるように、ホット・スポットを持った矢印ポインタのようなものでなければなりません。無効状態インジケータ、つまり無効ポインタ (図 3-3 を参照) は、ユーザが無効なドロップ領域の上にいるときに表示されます。

操作インジケータ

ドラッグ・アイコンの 2 つ目の部分は、操作インジケータです。ドラッグ操作には、移動コピー、およびリンクがあります。

移動

ドラッグされる項目が出力先に移動されます。

コピー

項目が出力先にコピーされます。

リンク

出力先とソースの間に接続が保持されます。この操作は、ある程度までアプリケーションによって定義され、一般的に使用されるものではありません。

移動、コピー、およびリンクがユーザ・アクションにどのようにマッピングされるかについては、「アクション」を参照してください。

操作インジケータは、ドラッグ中に、実行される操作に関するユーザ・フィードバックを与えます。図 3-6 にコピーおよびリンクのフィードバックを示します。ほとんどのドラッグは移動操作なので、操作インジケータがドラッグ・アイコンに追加されるのは、コピーまたはリンク操作の場合だけです。

図 3-6 コピー (左) およびリンク操作インジケータの例

Graphic


注 -

操作フィードバックは状態およびソース・フィードバックの上に描画されます。これは Motif の基本的な動作です。


ユーザは、ドラッグ中に特定のキーを押すことで、ドラッグを強制的に移動、コピー、またはリンクできます ([Shift] キー = 移動、[Control] キー = コピー、[Shift] + [Control] キー = リンク)。

ソース・アプリケーションも強制的にコピーさせることができます。ユーザが操作を強制するとき、ドロップが成功するためには、ドロップ領域がその操作に対応していなければなりません。そうでない場合、ドロップ領域は操作が無効であることを表示しなければなりません。

必須 

4-36: 

ユーザが要求した移動、コピーまたはリンク操作が使用不可能な場合、転送操作は失敗する。 

必須 

4-55: 

選択をサポートするコレクションで、[Shift] + BTransfer Release または [Shift] + BSelect Release は、強制的にドラッグ移動操作を実行する。移動が不可能な場合、操作は失敗する。 

必須 

4-56: 

選択をサポートするコレクションで、[Control] + BTransfer Release または [Shift] + BSelect Release は、強制的にドラッグ・コピー操作を実行する。コピーが不可能な場合、操作は失敗する。 

必須 

4-57: 

選択をサポートするコレクションで、[Control] + [Shift] + BTransfer Release または [Shift] + BSelect Release は、強制的にドラッグ・リンク操作を実行する。リンクが不可能な場合、操作は失敗する。 

推奨 

s: 

選択をサポートするコレクションで、BTransfer Motion (または BSelect Motion) の結果としてドラッグ操作が開始される場合は、コピー、移動、またはリンク操作が実行中であることを示すフィードバックが、ユーザに表示される。操作がコピー、移動、またはリンクのいずれになるのかは、ドロップ領域に作成されるオブジェクトの型と、ソース・オブジェクトが削除されるかどうかに依存する。 

推奨 

t: 

選択をサポートするコレクションで、[Control] + BTransfer Motion または [Control] + BSelect Motion の結果としてドラッグ操作が開始される場合は、コピー操作が実行中であることを示すフィードバックが、ユーザに表示される。 

推奨 

u: 

選択をサポートするコレクションで、[Control] + [Shift] + BTransfer Motion または [Control] + [Shift] + BSelect Motion の結果としてドラッグ操作が開始される場合は、リンク操作が実行中であることを示すフィードバックが、ユーザに表示される。 

ソース・インジケータ

ソース・インジケータは選択 (またはドラッグされているもの) を表すものです。これには、選択が表す項目が単一か複数かと、選択が表すものの種類に応じて、いくつかのバージョンがあります。表 3-1 にドラッグ・アイコンの例を示します。


注 -

ドラッグ・アイコンはカーソルとして動的に合成されるため、画面図を示すことはできません。このため、表 3-1 には画面上に見えるものの概略図を示します。


ホット・スポットは、テキスト・ドラッグ・アイコンの場合は左上隅 (1,1) にあります。単一および複数ドラッグ・アイコンのホット・スポットは、無効アイコンの左上ピクセルにあります (3,3)。個々のドラッグ・アイコンは、ユーザに対象を明示し、配置の精度を向上させるために調整されています。

表 3-1 一般ソース・インジケータ付き表示のありうるドラッグ・アイコン

操作 

テキスト選択 

単一選択 

複数選択 

有効な移動 

Graphic

Graphic

Graphic

有効なコピー 

Graphic

Graphic

Graphic

有効なリンク 

Graphic

Graphic

Graphic

無効な移動 

なし 

Graphic

Graphic

Graphic

無効なコピー 

Graphic

Graphic

Graphic

無効なリンク 

Graphic

Graphic

Graphic

ドラッグ&ドロップの構造

基本のアプリケーション・アーキテクチャには、ドラッグ&ドロップを設計する上で理解しておくべきことがいくつかあります。

共通デスクトップ環境では、ドラッグ可能なオブジェクトには、ファイル、バッファ、テキスト選択の 3 つの型があります。

個々のアプリケーションは、ドラッグ&ドロップが可能なオブジェクトを独自に持っています。たとえば、カレンダはアポイントを、メール・プログラムはメール・メッセージを、ファイル・マネージャはフォルダやファイルを使用します。ファイル・マネージャのフォルダおよびファイル・アイコンは、基本ファイル・システムの中では独立して存在するため、ドラッグ&ドロップの際にはファイルとして扱われます。しかし、カレンダのアポイントやメール・プログラムのメッセージは、ファイル・システムの中で独立した存在ではありません。これらのオブジェクトがドラッグされるときには、バッファとして扱われます。

この違いは、ユーザにとっては混乱の元になります。ユーザには、この両方の型のオブジェクトは同じものに見えます。どちらもアイコンで表示でき、どちらも他の似たようなオブジェクトから独立して操作できます。しかし、実装の都合上、ユーザは操作するオブジェクトの型によって、異なる結果を得ることになります。

テキストの一部の選択は、ユーザにとってアイコンの選択とはまったく異なる操作なので、テキスト選択は別のカテゴリに分類されます。ユーザはドキュメント・ウィンドウの中でテキストの範囲を選択します。テキストはドキュメント全体を表すのではなく、ドキュメントの一部を表すだけです。実際には、ユーザはテキストの一部を独立したオブジェクトと考えることはほとんどなく、テキストの一部をドロップしたときに、それがアイコンのように動作することを期待しません。このため、テキストのドラッグ&ドロップ・モデルは、[編集] メニューから使用するカット、コピー、およびペースト操作を反映しています。

アクション

オブジェクトがドロップされたときに起こるアクションには、挿入と読み込みの 2 つがあります。

挿入アクションは、ドロップされたオブジェクトを出力先に挿入し、アプリケーションまたはドキュメントの現在のデータに追加します。オブジェクトは、ユーザがアポイントのスケジュールを設定したり、ドキュメントを印刷したり、ドキュメントを接続したり、テキストをペーストしたり、メール・メッセージを追加したときに挿入されます。このようなアクションは、出力先とユーザに応じた、移動またはコピー操作です。選択したテキストの一部を、移動するのではなくコピーしたい場合もあります。ドラッグ・アイコンは、操作がコピーと移動のどちらなのかを表示しなければなりません。

読み込みアクションは、ユーザが [ファイル] メニューから [開く] を選択し、ファイルを選択して [開く] ボタンをクリックしたときと同じ動作をします。ドロップされたオブジェクトはアプリケーションに読み込まれます。ユーザはオブジェクトを編集し、変更内容を元のファイルに保存できます。現時点で、読み込みが機能するのはファイルに対してのみで、バッファやテキストに対しては機能しません。ユーザがオブジェクトを、読み込みアクションをサポートしているドロップ領域上にドラッグする際には、コピー・ドラッグ・アイコンを表示しなければなりません。

バッファに対しても読み込みは機能します。ただし、バッファは読み込み専用で読み込まれます。詳細は、「アタッチメント・ユーザ・モデル」の節を参照してください。

マッチング操作

ドラッグ&ドロップのアプリケーション内での動作を設計するときは、ドラッグ&ドロップのソースと出力先がマッチしないときに、どのような操作を行うべきなのかを Motif が決定する方法を理解しなければなりません。

各ドラッグ・ソースについて、アプリケーションはどのドラッグ&ドロップ操作が可能で、どの出力先にドロップできるのかを公示します。各ドラッグ出力先について、アプリケーションは許容されるソースと操作のタイプを公示します。ソースとその出力先で 2 つ以上の操作が共通している場合、Motif は特定の順序に従って、どの操作を使用するかを決定します。この順序は移動、コピー、リンクです。アプリケーションは、ドラッグされるものの型に応じて、受け入れられた操作を変更できません。

たとえば、アプリケーション A が、要素の移動またはコピーが可能であるということを公示しているとします。アプリケーション B は、出力先がコピーまたはリンクを受け入れることを公示しています。この例での共通操作はコピーです。アプリケーション B 内の出力先が移動またはコピーを受け入れる場合には、操作の順序で移動操作の方が先なので、ソースが移動されます。

この例で、ユーザは修飾キーを押すことによって移動操作を無効にできます。たとえば、[Control] キーを押すと、操作をコピーに変更できます。これができるのは、コピー操作が操作の共通セットに含まれている場合だけです。コピー操作が共通セットに含まれていない場合、ドラッグは無効なドラッグになります。

マッチング操作を考慮しなければならないのは、出力先が移動を受け入れることはできるが、コピーの方が望ましい場合だけです。この場合、出力先はコピーだけを受け入れた方がいいことになります。

コピーは常に受け入れる方がいいでしょう。コピーを受け入れると、受け入れ可能なドロップの範囲が広がります。移動が受け入れられるならば、ほとんどの場合にコピーも機能します。移動はコピーを行なった後に削除を実行するという方法で実装されていることに注意してください。

ドラッグ・ソースの決定

アプリケーション内でドラッグ&ドロップを使用することを決めたら、どのコントロール要素をドラッグできるのか、その要素をどのように表現するのかを決定しなくてはなりません。一般に、ユーザはテキストまたはファイルのようなものをドラッグのために選択しますが、アプリケーションがメール・メッセージやアポイントなど、ドラッグ&ドロップが意味を持つような他の要素を持っている場合があります。

この節では、ドラッグ・ソースを決定する上での一般的なガイドラインを示し、ドラッグ可能な具体的な要素について説明します。


注 -

ドラッグのソースには、選択可能なコンポーネントまたは項目を持っている、ヒューマン・インタフェース要素だけが使用できます。ボタン上やメニュー上のラベルなどの静的ラベルをドラッグのソースとすることはできません。


アプリケーションのドラッグ・ソースを決定する前に、アプリケーションの選択機能の中にドラッグを組み込む方法を検討しなければなりません。ユーザが、アクションの結果に迷いを抱くことなく、選択やドラッグができなければなりません。

必須 

4-58: 

ドラッグ移動操作が、セレクションを同じコンポーネントの中で移動するとき、セレクションは選択された要素とともに移動する。 

つまり、選択された要素がドラッグ操作で移動される場合、それらの要素は移動の後も選択されていなければなりません。 

必須 

4-59: 

テキスト単位のコレクションで、選択領域内でドラッグを開始すると、テキスト・セレクション全体がドラッグされる。 

必須 

4-60: 

リスト単位およびグラフィック単位のコレクションで、選択された要素上でドラッグを開始すると、セレクション全体がドラッグされる。 

必須 

4-61: 

リスト単位およびグラフィック単位のコレクションで、未選択の要素上で BTransfer または BSelect でドラッグを開始すると、その要素だけがドラッグされ、セレクションには影響しない。 

必須 

4-62: 

未選択の領域でドラッグが開始され、ポインタが 2 つのドラッグ可能な要素にまたがっている場合、ドラッグは重なりの一番上にあるドラッグ可能な要素を使用する。 

必須 

4-67: 

BTransfer (または BSelect) が離されると、ドロップ操作は通常ドラッグ・アイコン・ポインタのホット・スポットの位置で起こり、重なりの一番手前にあるドロップ領域にドロップされる。しかし、ドロップがセレクションの中で発生し、かつ保留されている選択の削除が有効になっている場合、転送データはセレクション全体の内容を置き換える。 

スクロール・リスト

共通デスクトップ環境では、スクロール・リストの中の項目は、デフォルトではテキスト・オブジェクトです。これはバッファ・オブジェクトであることもありますが、テキストとバッファの両方であることはできません。たとえば、カレンダの [アポイントエディタ] には、ユーザが選択してドラッグできる、アポイントのスクロール・リストがあります。ユーザがアポイントをドラッグすると、バッファが操作され、ドラッグ・アイコンには、図 3-7 に示すように、ソース・インジケータとしてアポイント・アイコンが表示されます。メール・プログラムのコンテナ・ウィンドウは、ウィンドウの上部にメール・メッセージのリストを持っています。ユーザは、このリストから 1 個以上のメッセージを選択してドラッグできます。これらのメッセージは実際にはバッファであり、ドラッグ・アイコンはソース・インジケータとしてメール・メッセージを表示します。複数のメール・メッセージがドラッグされる場合、ドラッグ・アイコンには複数ソース・インジケータが表示されます。

図 3-7 ドラッグする項目が選択されているスクロール・リストの例

Graphic

アプリケーションが、メール・メッセージのヘッダや、他の種類のオブジェクトのリストを表示するためにスクロール・リストを使用している場合は、ドラッグを拡張選択と統合する必要があります。この動作はメール・プログラム・アプリケーションで実現されています。

必須 

k: 

範囲選択を使用するコレクションで、未選択の要素の上で BSelect を押すと、その要素上または BSelect が押された位置にアンカーが設定され、コレクションの中のすべての要素の選択が解除される。ドラッグのしきい値に達する前に BSelect が離された場合は、ポインタの下の要素が選択される。BSelect Motion がドラッグのしきい値を超えると、新しい選択が開始される。アンカーとポインタの現在位置が現在の範囲を決定する。コレクションの中で BSelect がドラッグされると、現在の範囲が強調表示される。BSelect が離されると、アンカーは移動せず、現在の範囲の中のすべての要素が選択される。 

必須 

l: 

範囲選択を使用するコレクションで、現在の選択要素の上で BSelect を押したときに、選択セットの中の他の要素がすべて選択解除されてはならない。ドラッグのしきい値に達する前に BSelect が離された場合は、その時点で他のすべての要素の選択が解除され、ポインタの下の要素が選択されて残る。BSelect Motion がドラッグのしきい値を超えると、要素は 1 つも選択解除されず、ドラッグ操作が開始される。 

ダイアログ・ボックス

アプリケーションはダイアログ・ボックスの中からのドラッグをサポートしなければならないことがあります。たとえば、カレンダの [アポイントエディタ] では、左側にユーザがアポイントに関する情報を入力する一連のテキスト・フィールドがあります。この領域からのドラッグをサポートすれば、ユーザはアポイントの記述からテキストをドラッグできます。

図 3-8 カレンダの [アポイントエディタ] ダイアログ・ボックスの例

Graphic

何かがドラッグ可能であることを示すための方法としては、ダイアログ・ボックスの中にアイコン・グラフィックを入れておくという方法を推奨します。アイコン・グラフィックはドラッグ可能でなければなりません。このアイコン・グラフィックは、ファイル・マネージャの中でデータを表現するために使用されるのと同じアイコンでなければなりません。カレンダ内で、アポイント・アイコンはファイル・マネージャの中と同じ表示になっており (図 3-8 を参照)、その下にラベルが付けられています。これはドラッグ・アイコン・ソース・インジケータで使用するのと同じアイコンです。

アイコン・グラフィックは、ダイアログ・ボックスの中で、ドラッグされる情報のすぐ近くに配置します。ダイアログ・ボックスまたはウィンドウの右上隅がデフォルトの位置ですが、アプリケーションに応じて変更することもできます。カレンダの [アポイントエディタ] では、アイコンは、テキスト・フィールドがドラッグできることを示すために、メイン・テキスト・フィールドの近くに置かれています。

推奨 

ds: 

ダイアログ・ボックスまたはウィンドウ内のオブジェクトがドラッグできることを示すために、ダイアログ・ボックスまたはウィンドウ内でアイコン・グラフィックを使用する。そのドラッグ可能なオブジェクトをファイル・マネージャの中で表現するために使われるのと同じアイコン・グラフィックを使用する。アイコンは、オブジェクトの内容の表示が存在する場合は、その近くに配置する。このような表示が存在しない場合は、特に良い場所がなければ、ダイアログ・ボックスまたはウィンドウの右上隅に配置する。アイコンはサイズが 32*32 で、その下にラベルが付けられていなければならない。ラベルは、そのアイコン・グラフィックが表すオブジェクトの種類を示していなければならない。また、そのアイコン・グラフィックはドラッグ・アイコンのソース・インジケータとしても使用する。 

ウィンドウ

一部のアプリケーションでは、ドキュメントまたはファイル全体をドラッグできるようにしたいことがあります。たとえば、アイコン・エディタでは、現在エディタの中にあるアイコンのファイルをドラッグできてもいいはずです。アプリケーションは、アプリケーションのウィンドウ内にアイコン・グラフィックを組み込むことにより、ユーザにドキュメントまたはファイルがドラッグできることを知らせなければなりません。アイコン・グラフィックはドラッグ可能でなければなりません。アイコン・エディタの場合、アイコン・ファイルの内容の表示に使用されるアイコンの 1 つがドラッグに使用されます。アイコンは、ダイアログ・ボックス内で使用されるアイコンのガイドラインに従わなければなりません。つまり、ファイル・マネージャ内でドキュメントを表現するのに使われるのと同じアイコンで、32*32 ピクセルの大きさで、ラベルを持ち、ドラッグされるデータの近くに配置され、ドラッグ・アイコンのソース・インジケータとして使用されなければなりません。

複数選択のドラッグ&ドロップ

ユーザがドラッグの対象として複数の項目を選択したとき、ドラッグ・アイコンは複数の項目が選択されていることを示すためにインジケータの変更をしなければなりません。

一部のドロップ領域は単一の項目しか受け付けないかもしれません。ドロップ領域は、ドロップされる項目が単数なのか、複数なのかを区別できません。ドロップ・アイコンは無効ポインタを表示しません。その代わりに、項目はメルトし、出力先アプリケーションによってスナップ・バックされなければなりません。スナップ・バックの後には、ユーザにドロップが失敗した理由を通知するエラー通知が表示されなければなりません。

推奨 

ef: 

単一の項目しか受け付けないアプリケーションは、すべての複数項目ドロップを拒否しなければならない。 

選択項目のうち、ユーザが本当にドロップしようとしたのはどれかを決定する一貫性のある方法はありません。 

標準でサポートされるドロップ領域

共通デスクトップ環境で標準でサポートされるドロップ領域は、フロントパネルのコントロール、開いたウィンドウ、およびファイル・マネージャ内のフォルダ、アクション、および一部の他のアイコンです。ドロップをサポートしていないアイコン化されたアイコンやファイル・マネージャ・アイコンへのドロップは、共通デスクトップ環境ではサポートされていません。

フロントパネル

フロントパネルは、ユーザにとってアクセスが簡単に、素早く行えるようにするためにまとめられた、コントロールやその他の機能を集めたものです。このため、そのドラッグ&ドロップ動作は出力先のコンテキストに強く依存します。たとえば、出力先がプリンタの場合は印刷を行います。出力先がサブパネルの場合はインストールを行います。大部分のアプリケーションは、フロントパネルほど広い範囲の動作を持っていません。

ファイル・マネージャ

ユーザは、共通デスクトップ環境のファイル・マネージャを使用して、デスクトップにアイコンをドロップできます。デスクトップ上のアイコンはリファレンスになります。リファレンスの作成と、その結果の動作には、共通デスクトップ環境の将来のユーザ・モデルとの一貫性はありません。ユーザ・モデルとアーキテクチャの仕様がさらに定められるまで、開発者がデスクトップにドロップを行なったり、ファイル・マネージャの動作をコピーしたりすることは勧められません

ファイル・マネージャのウィンドウ内では、共通デスクトップ環境 1.0 のフォルダとアクション・アイコン以外のアイコンへドロップできます。たとえば、メールのメッセージ・アイコンをメールのコンテナ・アイコンにドロップすると、メールのメッセージを追加します。

メールのメッセージやカレンダのアポイントや他のバッファがソースとなるアプリケーションからドラッグされ、ファイル・マネージャにドロップされるときには、名前を付ける必要があります。基本の API は、ドラッグされる項目の名前フィールドをサポートしています。この名前はバッファの名前として使用されます。この名前は、元のアプリケーションと一貫性がある方法で決定されなければなりません。ファイル・マネージャにテキスト選択をドロップする場合のように適切な名前がない場合は、ファイル・マネージャは結果として作られるファイルを「unnamed」という名前にします。名前の重複が起こる場合、ファイル・マネージャはダイアログ・ボックスを表示して、ドロップされるファイル名を変更するかどうかをユーザに問い合わせます。

ドロップ専用ターゲットは存在しない

共通デスクトップ環境では、ドロップ用にしか使用されない特定のコントロールあるいはグラフィカル・ターゲットという概念はサポートされていません。ヒューマン・インタフェースの中の、選択可能な項目を持つ任意のコントロールは、その上にドロップできなければならず、またドロップ領域フィードバックを提供しなければなりません。これには、データ区画、スクロール・リスト、およびテキスト入力フィールドが含まれます。ドロップの際に起こる操作には、そのアプリケーション・タイプに関してユーザが抱く期待との一貫性がなければなりません。

マウス・ボタンの使用

共通デスクトップ環境では、ユーザは各種の作業スタイルに応じて、マウス・マッピングを変更できます。BSelect は、Motif で以前から転送操作のために使用されてきた BTransfer に加えて、ドラッグ&ドロップをサポートするように変更されています。

ユーザは、システムをセットアップして、BSelect と BTransfer を使用してドラッグ&ドロップを実行するようにしたり、BSelect だけを使用したりするようにできます。アプリケーションを設計するときは、この点を考慮します。ユーザがマウス・ボタン・マッピングをどのように設定しているのかを確認し、そのマッピングを使用します。

必須 

p: 

アプリケーションは、マウス・ボタン 1 によるドラッグ&ドロップ操作をサポートする。 

Motif 1.2 では、ドラッグ&ドロップは一般に 3 ボタン・マウスのボタン 2 (BTransfer) を使用して実行されます。しかし、共通デスクトップ環境では、他のグラフィカル・ユーザ・インタフェース (GUI) 環境との互換性があるマウス操作をサポートするために、マウス・ボタン 1 (BSelect) によるドラッグ&ドロップがサポートされなければなりません。つまり、共通デスクトップ環境では、BTransfer は BSelect と統合されています。ドラッグはマウス・ボタン 1 とマウス・ボタン 2 のどちらでも開始できます。 

必須 

q: 

3 ボタン・マウスのボタン 2 が BAdjust として動作するように構成されている場合、アプリケーションはマウス・ボタン 2 がクリックされたときに BTransfer (または BSelect) 操作を実行しない。 

3 ボタン・マウスでは、ボタン 2 は一般に BTransfer 機能に使用されます。しかし、共通デスクトップ環境では、ユーザは環境設定を変更して、マウス・ボタン 2 を BAdjust 機能に使用するように指示できます。BAdjust は、[Shift] + BSelect と同じように、選択セットを拡張するために使用できます。 

必須 

r: 

選択した項目上をドラッグした場合、BSelect でドラッグが開始されるべきである。ドラッグがしきい値に達するとドラッグが開始される。これは、テキスト領域、スクロールリスト、および他の同様の項目で起こる。 

ドロップの際の配置

ユーザから見ると、ドロップ項目の配置は、ユーザの作業と、その作業を行うアプリケーションまたはコンテキストに依存します。

ファイル・マネージャでは、デフォルトが [自由] に設定されている場合、アイコンはドロップされた場所に配置されます。デフォルトが [整列] に設定されている場合、ドロップされたアイコンは自動的にソートされてから配置されます。つまり、アイコンはユーザがドロップされた場所には配置されないことがあります。

ドロップされる項目がどこに配置されるかが問題にならない場合もあります。たとえば、フロントパネル・コントロールでは、ドラッグされた項目がコントロールの上にありさえすれば、ドロップ領域が起動されます。

メール・プログラムのメール作成ウィンドウでは、配置はドロップされるものに依存します。ユーザがテキストの一部をドラッグしている場合、テキストはドロップ・ポイントに挿入されます。ユーザ・テストの結果、これがユーザの期待する動作であることがわかっています。ユーザがファイルまたはバッファのアイコンをドロップすると、その内容が挿入ポイントに取り込まれます。これは、ユーザが [取り込みファイル選択ボックス] でファイルを選択したときの動作を反映しています。

ユーザの作業の種類に基づいて、アプリケーションに適した動作を決定する必要があります。

必須 

4-37: 

コレクションが固定挿入ポイントを持っていなかったり、要素を特定の順序で並べている場合、転送データの挿入ポイントは次のように決定される。 

  • BTransfer ベース (または BSelect) の一次操作とドラッグ転送操作の場合は、後述のテキスト・コレクションの場合を除いて、挿入位置は、ユーザが BTransfer (または BSelect) を離した位置である。

  • テキスト単位のコレクションの場合、ユーザが選択テキストをドロップすると、挿入位置はユーザが BTransfer (または BSelect) を離した位置になる。ユーザがアイコンをドロップすると、挿入位置はテキスト・カーソルの位置になり、データはその前にペーストされる。

  • リスト単位のコレクションの場合、他の転送操作の挿入位置は位置カーソルを持つ要素で、データはその前にペーストされる。

    挿入位置は、転送データが配置される出力先中の位置です。一部のマウス・ベースの転送操作は、可能ならばデータをポインタ位置に配置します。キーボード・ベースの転送を含む他の操作は、一般にデータを位置カーソルの位置に配置します。

ドラッグの終了

次の 2 つの項目により、ユーザはデータを失ったり、その他の不利な結果を招かずに、ドラッグ操作を中止できます。

必須 

dx: 

[取消し] を押すと、実行中のドラッグを取り消して、ドラッグ&ドロップ操作を終了する。 

必須 

dy: 

ドロップ・ターゲット上以外の位置で BTransfer (または BSelect) を離すと、ドラッグ&ドロップ操作を終了する。 

パフォーマンスのガイドライン

ドラッグ&ドロップ操作中に、タイミングとユーザに対する応答が重要な瞬間がいくつかあります。最適なパフォーマンスを保証する責任は、ソースおよび出力先のアプリケーションと、Motif ドラッグ&ドロップ API およびドラッグ&ドロップ簡易 API にあります。

ドラッグ&ドロップ操作におけるユーザの個々の手順とそれに対するシステム応答を、時間を追って次に示します。各手順の後に、対話のタイミングに関するガイドラインがあります。

  1. ユーザが選択します。ポインタは選択したオブジェクト上にあります。ユーザはマウス・ボタンを押し続けます。

  2. ユーザがポインタの移動を開始します。ユーザはドラッグを開始する前に、ポインタを 10 ピクセル移動できなければなりません。ユーザが BTransfer を押している場合は、ドラッグのしきい値はありません。

    -> ドラッグを開始すると、ポインタはドラッグ・アイコンに変化します。

    移動の遅延: 手の移動を認識してからドラッグ・アイコンの表示を開始するまでの遅延は 50 ミリ秒未満でなければなりません。手の移動からポインタがドラッグ・アイコンに変化し終えるまでの時間は、最大で 70 ミリ秒に制限されています。

  3. ユーザが、ドラッグ・アイコン上のホット・スポットに境界線を越えさせて、ドロップ領域の上にドラッグします。

    -> 有効なドロップ領域上にない場合は、ドラッグ・アイコンは無効ポインタに変化します。有効なドロップ領域の場合は、ドロップ領域が強調表示されます。

    移動の遅延: 手の移動を認識してからドラッグ・アイコンの表示を開始するまでの遅延は 50 ミリ秒未満でなければなりません。手の移動からポインタがドラッグ・アイコンに変化するまでの時間は、最大で 70 ミリ秒に制限されています。

  4. ユーザがドロップ領域にドラッグ・アイコンをドロップします。

    -> ドロップ領域が有効でない場合は、ドラッグ・アイコンはスナップ・バック遷移効果を使用してソースにスナップ・バックされます。

    -> ドロップ領域が有効な場合は、ドラッグ・アイコンはメルト・イン遷移効果を使用して出力先にメルトします。

    エコーの遅延: マウス・ボタンを離したことを認識してからフィードバック・エコーの表示を開始するまでの遅延は 50 ミリ秒未満でなければなりません。マウス・ボタンを離してからフィードバック・エコーを表示し終えるまでの時間は、最大で 120 ミリ秒に制限されています。

    スナッピー遷移: 遷移アニメーション自体は 200 〜 350 ミリ秒間実行されなければなりません。マウス・ボタンを離してから、遷移アニメーションが終了するまでの時間は、最大で 500 ミリ秒に制限されています。アニメーションはハードウェアの条件とは無関係に、同じ速度で実行されなければなりません。

  5. 出力先アプリケーションがデータ転送を開始します。

    -> ユーザに、データ転送が開始されたことを通知するメッセージが表示されます。

    -> 実行の経過状況を示すメッセージがさらに表示されます。

    -> データ転送の完了がユーザに通知されます。

    -> データ転送に失敗した場合、ユーザに失敗の理由を知らせるフィードバックを与えるかどうかは、出力先アプリケーションに依存します。

    コマンドの遅延: コマンドの起動、つまりドロップの発生を認識してから、コマンドを起動するまでの遅延は、0.3 〜 1 秒の範囲でなければなりません。ドロップの発生からコマンドの起動を完了するまでの時間は、最大で 2 秒です。

    ビジー・フィードバック: コマンドの実行に 2 秒以上かかる場合、カーソルがビジー・オブジェクト上にあるときは、必ずビジー・カーソルを表示します。可能ならば、部分的な結果を表示します。経過表示やビジー・カーソルの表示時間は 0.5 秒未満です。

    経過表示: データ転送が実行中であることを示す遷移アニメーションの完了時には、ステータス・メッセージまたは [経過] *メッセージボックス* が表示されなければなりません。例: Data transfer is 10% complete. このメッセージは転送が 100% 完了するまで、2 〜 3 秒おきに更新できます。

    通知: データ転送に失敗した場合、ドロップが失敗した理由と、ユーザが取りうる措置 (存在する場合) を示すメッセージが、ステータス領域か [経過] *メッセージボックス* に表示されなければなりません。

アプリケーションの中でのアタッチメントの使用

この節では、共通デスクトップ環境 1.0 のドキュメントにドキュメントを接続する方法に関するユーザ・モデルとガイドラインを説明します。この機能はメール・プログラムで実現されています。アプリケーションのインタフェースにアタッチメント・リストを取り込む場合は、この節を読んでください。


注 -

このガイドラインのセットは、埋め込みドキュメント・アーキテクチャの説明ではありません。


共通デスクトップ環境では、アタッチメントとアタッチメント・リストは次のように定義されています。

アタッチメント

A と B という名前の 2 つのドキュメントがあるとします。ドキュメント A が別のドキュメント B に接続されると、A は B によって「運ばれる」独立したドキュメントとして存在し続けます。A は B の内部でアイコンとして表示されます。A は独立に開いたり表示したりでき、後に B から分離して一度も接続されなかったかのようにできます。

アタッチメント・リスト

アタッチメントが表示される領域です。スクロール可能でなくてはならず、アイコン・ラベルを表示するための空間が必要です。


注 -

ユーザは、複数のドキュメントが接続されたドキュメントをコンテナとは見ません。コンテナは、アタッチメントのヒューマン・インタフェースに現われるべきではない実装上の概念です。このため、ユーザにアタッチメントを説明する際には、コンテナという用語は使うべきではありません (これ以外の状況では使用できることもあります)。


アタッチメント・ユーザ・モデル

アタッチメントは、接続先にアイコンで表示されます。これらのアイコンは、ファイル・マネージャや、共通デスクトップ環境の他の場所で使用されているのと同じアイコンです。基本的な動作規則は、アタッチメントと同じアイコンがファイル・マネージャで使用されているならば、あらゆる状況で、この 2 つが同じ動作をするように努力しなければならないというものです。

接続されたドキュメントの機能には、次の 3 つのレベルがあります。

  1. ドキュメントを接続および分離できる。

  2. 接続されたドキュメントを独立したウィンドウで開き、表示し、終了できる。

  3. アタッチメントを独立したウィンドウで編集し、変更内容を接続されたドキュメントに戻して保存できる。

目標は、可能な限りレベル 3 の機能を実現することです。アタッチメントがこのレベルを実現できない場合は、上記のように機能のレベルを下げていきます。この節ではレベル 3 の機能を前提として説明します。

ドキュメントがアタッチメントに関して提供している機能が、ファイル・マネージャのアイコンとして提供されている機能と大きく異なる場合は、ユーザが機能の違いをはっきりと認識できるように、アタッチメントには別のアイコンを用意してください。

アタッチメントの機能

アタッチメントをアプリケーションに組み込む際には、いくつかの点に注意する必要があります。

何がアタッチメントできるのか

各アプリケーションについて、接続できる項目を決定しなければなりません。たとえば、メール・プログラムはドキュメント、スクリプト、およびアプリケーションなどを接続できますが、フォルダは接続できません。

アタッチメントの方法は

アタッチメントの方法には、[アタッチメント] メニューの [ファイルの追加] を選択したときに表示されるファイル選択ダイアログ・ボックスを通して行う方法と、ファイル・マネージャまたは他のアプリケーションからのドラッグ&ドロップによる方法の 2 つがあります。

推奨 

eh: 

ドラッグ&ドロップがオブジェクトの接続を行う唯一の方法であってはならない。 

推奨 

el: 

ユーザが、接続可能な項目でない何かをファイル選択ダイアログ・ボックスから選択した場合に、ユーザは、選択された項目が接続できないことを説明するエラー・メッセージを受け取る。次に例を示す。 

The folder "My.Stuff" cannot be attached because it is a folder. Only documents, applications, and scripts can be attached.

My.Stuff」はフォルダなので、アタッチできません。ドキュメント、アプリケーション、およびスクリプトだけがアタッチできます。

推奨 

ej: 

ユーザが、接続可能でない何かをアタッチメント・リストにドロップしようとすると、ドロップは失敗し、その項目はソースにスナップ・バックされる。 

アタッチメントされると何が起こるのか

ドキュメント A をドキュメント B に接続すると、ドキュメント A のビットがドキュメント B の中にコピーされます。元のファイルとのつながりは、これ以外にはありません。ユーザが接続されたドキュメントを開いて変更すると、変更内容は接続されたドキュメントにのみ保存され、ファイル・システムの中のファイルには保存されません。

アタッチメント内部のアタッチメント

ユーザは、アタッチメントを含んでいるメッセージやテキスト・ファイルを接続できます。これは「ネスティング」と呼ばれることがあります。テキスト・ファイルを読んでいるとメール・メッセージがあり、このメール・メッセージを開くと、さらにテキスト・メッセージとアタッチメントがあるというような状況があります。

アタッチメントの編集と保存

ユーザがアタッチメントを開き、編集し、変更内容をアタッチメントに保存できなくてはなりません。アタッチメントがこれを実行する能力を持っていない場合は、アタッチメントが選択されたときに、メニューの [アクション] の部分には [開く] のアクションが表示されてはならず、またダブルクリックを行なってもアタッチメントが開かないようになっていなければなりません。

推奨 

ei: 

ダブルクリックは、アタッチメントを選択して、アタッチメントを [開く] メニュー項目を選択するという操作のショートカットであり、アタッチメントにアクセスするための唯一の方法であってはならない。 

推奨 

ek: 

ユーザが編集するために 1 個以上のアタッチメントを開いており、ユーザの編集結果を失う可能性がある操作を試みた場合は、ユーザに明確な警告を発し、変更内容を保存する機会を与えなければならない。 

アタッチメントの実行

ユーザが実行可能なアタッチメントを開いたり、ダブルクリックを試みた場合、ユーザにこの操作の確認を求めた方がいいことがあります。この場合、アタッチメント名と、アタッチメントに対して実行されるアクション名の両方が変数になります。エラー・メッセージの例を次に示します。

   "Invitation" is an executable attachment. Do you want to Run it?
    Buttons: Run, Cancel, Help
   「Invitation」は実行可能なアタッチメントです。実行しますか?
   ボタン: [実行]、[取消し]、[ヘルプ]

読み取り専用アタッチメント

読み取り専用アタッチメントは、読み取り専用として開くことができます。この状態は、アタッチメント・アプリケーションのメニューを無効にしたり、選択カーソルを無効にしたり、その他のはっきりした方法を使ってユーザに通知したりしなければなりません。少なくとも、アタッチメント・アプリケーションの [保存] メニュー項目は選択不可になっていなければなりません。

ドラッグ読み込みとアタッチメント

ドラッグ読み込みを実行するには 2 つの方法があります。ドラッグ読み込みを直接にサポートするアプリケーションでは、ユーザがファイル・マネージャのアイコンを、そのアプリケーションの開かれたウィンドウにドラッグ&ドロップすれば、そのアイコンが表すファイルが読み込まれます。同じ結果が、アイコンをアクション・アイコン上にドロップしても実現されます。アクションはエディタを起動し、そのアイコンが表すファイルがエディタに読み込まれます。ファイル・マネージャのアイコンをドラッグ読み込みするのは、[ファイル] メニューで [開く] を選択するのと同じです。開かれたファイルは編集、保存ができます。

アタッチメントの場合、ユーザはドラッグ読み込みをサポートするエディタ上やアクション上に、アタッチメントをドラッグ&ドロップできますが、編集の結果はアタッチメントには保存されません。アタッチメントはバッファとして実装されており、読み取り専用のデータとして読み込まれます。

ユーザが読み込んだアタッチメントに変更内容を保存しようとすると、エディタはファイル選択ダイアログ・ボックスを表示し、ユーザに、名前を確認して、ファイル・システム内のファイルの保存場所を選択するように要求します。ファイル選択ダイアログ・ボックスで使用される名前は、アタッチメント名と同じです。エディタ (コマンド行アプリケーション) がファイル選択ダイアログ・ボックスを表示できない場合は、読み込んだファイルが読み込み専用であることを、はっきりと視覚的にユーザに通知しなければなりません。

ユーザがアタッチメントを直接に編集したい場合は、ユーザはアタッチメント・リストの中でアタッチメントを選択し、[アタッチメント] メニューから [開く] を選択するか、アタッチメントをダブルクリックします。これにより、編集し、変更内容を保存できるような形でアタッチメントを開くことができます。

もう 1 つのオプションとして、アタッチメントをドラッグ読み込みし、編集し、新しいファイル名で保存して、古いアタッチメントを新しいアタッチメントに手動で置き換えるという方法があります。

[アタッチメント] メニューの内容

推奨 

bw: 

アプリケーションでアタッチメント・メニューを使用する場合、該当するアクションが実際にサポートされているなら、次に示す選択肢にアプリケーションの機能を加えて格納します。 

推奨 

 

[ファイルの追加...] 

接続するファイルや他の項目を選択する。ユーザが接続したいファイルを選択するためのファイル選択ボックスが表示される。ファイル選択ボックスのデフォルト・ボタンは [接続] である。 

推奨 

 

[別名保存...] 

現在選択されているアタッチメントを保存する。ファイル・システムのどこにアタッチメントを保存するのかを指定するためのファイル選択ダイアログ・ボックスが、ユーザに表示される。複数のアタッチメントが選択されている場合、名前フィールドはアクティブでなく、アタッチメントの現在の名前が、新しいファイルの名前として使用される。このメニュー項目は、1 個以上のアタッチメントが選択されているときにのみアクティブである。 

推奨 

 

[名前の変更...] 

アタッチメント・アイコンの名前を変更する。アプリケーションは、ファイル・マネージャのように、アタッチメント・アイコンの名前を変更したいときにはいつでも変更できるような手段を提供しなければならない。アプリケーションがインラインでの名前変更を提供できない場合、[名前の変更] はダイアログ・ボックスを表示して、ユーザに名前の入力を要求することによりアタッチメントの名前を変更する。このメニュー項目は、単一のアタッチメントが選択されているときにのみアクティブである。複数のアタッチメントが選択されているときはアクティブではない。  

推奨 

 

[削除] 

アタッチメント・リストからアタッチメントを削除する。このメニュー項目は、アタッチメントが選択されている場合にのみアクティブである。 

推奨 

 

[すべてを選択] 

アタッチメント・リストの中のすべてのアタッチメントを選択する。