
マルチ ドキュメント インターフェイス( MDI )は、複数のウィンドウが 1 つの親ウィンドウの下に存在するグラフィカル ユーザー インターフェイスです。このようなシステムでは、多くの場合、子ウィンドウ内に他のウィンドウを埋め込むこともでき、複雑にネストされた階層が作成されます。これは、すべてのウィンドウが互いに独立している シングル ドキュメント インターフェイス( SDI )とは対照的です。
単一ドキュメントインターフェースとの比較
ユーザビリティコミュニティでは、複数ドキュメント インターフェイスと単一ドキュメント インターフェイスのどちらが望ましいかについて多くの議論が行われてきました。ソフトウェア企業は両方のインターフェイスを使用してきましたが、その反応はさまざまです。たとえば、Microsoft はOfficeアプリケーションを SDI から MDI モードに変更し、その後 SDI に戻しましたが、実装の程度はコンポーネントごとに異なります。SDI は、ユーザーが 1 つのアプリケーションのウィンドウ間を切り替えるよりも、別々のアプリケーション間を切り替えることが多い場合に便利です。
MDI は、現在開いているウィンドウに関する情報が不足していると、混乱を招く可能性があります。MDI アプリケーションでは、アプリケーション開発者はドキュメントを切り替えたり、開いているウィンドウのリストを表示したりする方法を提供する必要があり、ユーザーはアプリケーション固有のメニュー (「ウィンドウ リスト」など) を使用して開いているドキュメントを切り替える必要があります。これは、ウィンドウ マネージャーのタスク バーまたはタスク マネージャーに現在開いているウィンドウが表示される SDI アプリケーションとは異なります。近年、MDI アプリケーションで現在開いているウィンドウを表示するために「タブ」を使用することがますます一般的になっています。開いているドキュメントを管理するためにタブが使用されるインターフェイスは、「タブ付きドキュメント インターフェイス」(TDI) と呼ばれます。もう 1 つのオプションは、「タイル」ペインまたはウィンドウです。これにより、コンテンツが重なり合うのを防ぐのが容易になります。
一部のアプリケーションでは、個人の好みや現在のタスクに応じて、ユーザーがこれらのモードを自由に切り替えることができます。
現在までのほぼすべてのグラフィカル ユーザー インターフェイスツールキットは、MDI を設計するためのソリューションを少なくとも 1 つ提供しています。注目すべき例外は、MacOS High Sierraでタブ付きウィンドウ グループが登場するまで、Apple の Cocoa APIでした。たとえば、Java GUI ツールキットのSwing は、個々のフレームのコンテナーとして機能する クラス (クラス) を提供しています。GTKには、MDIの標準化されたサポートがありません。
javax.swing.JDesktopPanejavax.swing.JInternalFrame
利点
- マルチドキュメント インターフェイス (およびタブ付きドキュメント インターフェイス) では、単一のメニュー バーやツール バーがすべての子ウィンドウ間で共有されるため、煩雑さが軽減され、画面スペースを効率的に使用できます。この議論は、共通のメニュー バーを使用するオペレーティング システムではあまり関係ありません。
- アプリケーションの子ウィンドウ全体を非表示/表示/最小化/最大化することができます。
- 子ウィンドウには「タイル」や「カスケード」などの機能を実装できます。
- クロスプラットフォーム アプリケーションの作成者は、プラットフォーム間で一貫したアプリケーション動作をユーザーに提供できます。
- ウィンドウ環境と OS に適切なウィンドウ管理機能がない場合は、アプリケーション作成者が独自に実装できます。
- モジュール性: 高度なウィンドウ マネージャーは、アプリケーションとは独立してアップグレードできます。
デメリット
- MDI フレーム ウィンドウがないと、あるアプリケーションのフローティング ツール バーによって他のアプリケーションのワークスペースが乱雑になり、インターフェイスが乱雑になってユーザーが混乱する可能性があります。
- 親ウィンドウが 2 つ以上のモニターにまたがってセクションを非表示にする必要があり、複数のモニターを使用するデスクトップに実装するのは難しい場合があります。
- 仮想デスクトップは、 MDI の子によって拡張することはできません。ただし、場合によっては、別の親ウィンドウを開始することでこの問題を解決できます。たとえば、 OperaやChromeでは、タブ/子ウィンドウを親ウィンドウの外にドラッグして、独自の親ウィンドウを開始できます。他の場合には、各子ウィンドウも親ウィンドウであり、新しい「仮想」MDI [1] を形成します。
- MDI では、複数のアプリケーションのウィンドウを互いに隠れることなく一緒に配置する方法が制限されるため、複数のアプリケーションを同時に操作することが難しくなる可能性があります。
- 共有メニューが変更される可能性があり、一部のユーザーに混乱が生じる可能性があります。
- MDI 子ウィンドウは、シングル ドキュメント インターフェイスアプリケーションの子ウィンドウとは動作が異なり、ユーザーは 2 つの微妙に異なるウィンドウの概念を習得する必要があります。同様に、MDI 親ウィンドウは多くの点でデスクトップのように動作しますが、一部のユーザーを混乱させるほどの違いがあります。
- 子ウィンドウの階層が深くネストされ、分岐していると混乱が生じる可能性があります。
- 多くのウィンドウ マネージャーには、個別のウィンドウのグループを操作するためのサポートが組み込まれています。これは通常、ウィンドウを任意にグループ化したり、グループ解除したりできる点で MDI よりも柔軟性があります。一般的なポリシーは、同じアプリケーションに属するウィンドウを自動的にグループ化することです。これにより、同じ問題に対するソリューションが提供されるため、MDI は不要になると言えます。
- MDIアプリケーション用に学習したコントロールとホットキーは他のアプリケーションには適用されない可能性がありますが、高度なウィンドウマネージャを使用すると、より多くの動作とユーザー設定が同じシステム上のクライアントアプリケーション間で共有されます。
アプリケーション例
- Adobe Acrobat : バージョン 7.0 までは MDI ( Windowsのみ)、バージョン 8.0 では SDI がデフォルト (MDI に設定可能)、バージョン 9.0 では SDI のみ、バージョン 2015 では MDI (タブ付きインターフェイス付き)。
- Corel Wordperfect : MDI。コンピュータに複数のバージョンの WordPerfect がインストールされている場合、ユーザーは WP の複数のインスタンスをそれぞれ 1 つのドキュメントで開くことができます。最近のバージョンでは、ウィンドウの下部にあるステータス バーに、特定のウィンドウで開いているドキュメントのリストが保持され、TDI のバリエーションが提供されます。
- EmEditor : SDI または MDI のオプション。
- GIMP : フローティングウィンドウを備えたSDI(MDIはバージョン2.8 [2] 以降、「シングルウィンドウモード」と呼ばれるオプションとして利用可能)。
- GIMPshop : Adobe Photoshopに近づくことを目指したGIMPのフォーク。Windows版ではMDIが制限されている。[3]
- Chrome : MDI と TDI の組み合わせ。
- Internet Explorer 6 : 典型的なSDIアプリケーション
- KWrite : KDEソフトウェアコンパイル用に設計された別のテキストエディタ。簡素化されたSDIを備えていますが、共通のバックエンドを介してKateの多くの機能を共有しています。
- Kate : KDE ソフトウェアコンパイル用に設計されたテキストエディタ。高度な機能と洗練された MDI を備えています。
- Macromedia Studio for Windows: ハイブリッド インターフェイス。ドキュメント ウィンドウが最大化されていない場合は TDI です (デフォルトでは最大化されています)。
- Microsoft Excel 2003: アプリケーションの新しいインスタンスを起動する場合は SDI ですが、[ファイル → 新規] メニューをクリックすると MDI になります (ただし、子ウィンドウはオプションで OS タスクバーに表示されます)。2013 年現在、SDI のみです。
- Microsoft Word 2003: Microsoft Office 97 までは MDI。2000 以降、Word には複数のトップレベル Windows インターフェイスがあり、シェルに個別の SDI インスタンスを公開しますが、オペレーティング システムはそれを MDI アプリケーションの単一インスタンスとして認識します。Word 2000 では、これが唯一の使用可能なインターフェイスでしたが、2002 以降では MDI がオプションとして提供されています。Microsoft Foundation Classes (Office はこれをベースにしています) は、 Visual Studio 2002の新機能として、バージョン 7.0 以降このメタファーをサポートしています。2013年現在、SDI のみ。
- Firefox : デフォルトではTDI、SDIも可能
- Notepad++、PSPad、TextMate、その他多くのテキストエディタ: TDI
- Opera : MDI と TDI の組み合わせ (すばやくアクセスするためのタブ バーを備えた真の MDI インターフェイス)。
- Paint.NET : サムネイルベース、TDI
- UltraEdit : MDI と TDI の組み合わせ (すばやくアクセスするためのタブ バーを備えた真の MDI インターフェイス)。
- VEDIT : MDI と TDI の組み合わせ (すばやくアクセスするためのタブ バーを備えた真の MDI インターフェイス)。特別な「フル サイズ」ウィンドウは最大化されたウィンドウのように動作しますが、小さな重なり合ったウィンドウを同時に使用できます。Vedit の複数のインスタンスを起動できるため、SDI アプリケーションのように使用できます。
- Visual Studio .NET : 「ウィンドウ」メニュー付きの MDI または TDI (両方ではない)
- Visual Studio 6開発環境: 典型的な最新のMDI
- mIRC : デフォルトではMDIですが、SDIモードでも動作します
- Adobe Photoshop : Windows での MDI。新しいバージョンでは、ツールバーはフレーム ウィンドウの外側に移動できます。子ウィンドウは、最小化または最大化されていない限り、フレームの外側に表示できます。
IDEスタイルのインターフェース
IDEスタイルのインターフェイス(IDE)を備えたグラフィカル コンピュータ アプリケーションは、子ウィンドウが 1 つの親ウィンドウの下にあるアプリケーションです (通常はモーダル ウィンドウを除く)。IDE スタイルのインターフェイスは、マルチ ドキュメント インターフェイス (MDI) とは区別されます。これは、IDE スタイルのインターフェイスのすべての子ウィンドウが、MDI アプリケーションでは通常利用できない追加機能によって拡張されているためです。このため、IDE スタイルのアプリケーションは、MDI アプリケーションの機能的なスーパーセットおよび子孫であると考えることができます。
強化された子ウィンドウ機能の例は次のとおりです。
- ドッキング可能な子ウィンドウ
- 折りたたみ可能な子ウィンドウ
- サブペイン用のタブ付きドキュメントインターフェース
- 親ウィンドウの独立したサブペイン
- 親ウィンドウのサブペインのサイズを変更するための GUI スプリッター
- ウィンドウ配置の永続性
折りたたみ可能な子ウィンドウ
IDE スタイルのアプリケーションの子ウィンドウの一般的な規則は、非アクティブなとき、またはユーザーが指定したときに子ウィンドウを折りたたむ機能です。折りたたまれた子ウィンドウは、親ウィンドウの 4 つの外側の境界のいずれかに準拠し、再度展開できるようにする何らかのラベルまたはインジケーターが表示されます。
サブペイン用のタブ付きドキュメントインターフェース
通常、親ウィンドウに単一のタブ付きインターフェイスを許可する (MDI) アプリケーションとは対照的に、IDE スタイルのインターフェイスを持つアプリケーションでは、親ウィンドウの 1 つ以上のサブペインを整理するためのタブが許可されます。
IDEスタイルのアプリケーション例
- ネットビーンズ
- dBASE
- 日食
- ビジュアルスタジオ6
- ビジュアルスタジオ
- ビジュアルスタジオコード
- RSS バンディット
- J編集
- マテリアライズド
- MDI モードのMicrosoft Excel (上記参照)。
マッキントッシュ
MacOS とその GUI は、ウィンドウ中心やアプリケーション中心ではなく、ドキュメント中心です。すべてのドキュメント ウィンドウは、ユーザーが操作できるオブジェクトです。メニュー バーは、フロント ウィンドウが属するアプリケーションに応じて変化します。アプリケーション ウィンドウは、グループとして非表示にしたり操作したりすることができ、ユーザーはアプリケーション間 (つまり、ウィンドウのグループ) または個々のウィンドウ間を切り替えて、パレットを自動的に非表示にしたり、ほとんどのプログラムはウィンドウが開いていなくても実行されたままになります。実際、 Mac OS Xより前は、複数のアプリケーションのウィンドウをインターリーブすることは意図的に不可能でした。
それにもかかわらず、ヒューマン インターフェイス ガイドラインに違反する一部の異常なアプリケーション(最も顕著なのはPhotoshop ) は、異なる動作を示します。
参照
- グラフィカルユーザーインターフェース
- ドキュメントインターフェースの比較
- タブ付きドキュメントインターフェース
- タイルウィンドウマネージャ
- 統合開発環境
- センターステージ(ユーザーインターフェース) - 単一ドキュメントまたは IDE スタイルのインターフェースで使用されるユーザーインターフェースパターン
参考文献
- ヒューマンコンピュータインタラクション。Laxmi Publications。2005年。ISBN 978-81-7008-795-3. 2022年7月18日閲覧。
外部リンク
- MDI に対するインターフェースの不名誉の殿堂の議論
- C# を使用した MDI フォーム C# と Visual Studio 2010 Express を使用した .net の MDI フォーム
