Многодокументный интерфейс ( MDI ) — это графический пользовательский интерфейс , в котором несколько окон находятся под одним родительским окном. Такие системы часто позволяют дочерним окнам встраивать в себя другие окна, создавая сложные вложенные иерархии . Это контрастирует с однодокументными интерфейсами ( SDI ) , где все окна независимы друг от друга.
Сравнение с однодокументным интерфейсом
В сообществе юзабилити было много споров о том, какой интерфейс предпочтительнее — многодокументный или однодокументный. Компании-разработчики программного обеспечения использовали оба интерфейса с неоднозначными ответами. Например, Microsoft изменила свои приложения Office с SDI на MDI-режим, а затем обратно на SDI, хотя степень реализации варьируется от одного компонента к другому. SDI может быть более полезным в случаях, когда пользователи чаще переключаются между отдельными приложениями, чем между окнами одного приложения.
MDI может сбивать с толку, если в нем отсутствует информация о текущих открытых окнах. В приложениях MDI разработчик приложения должен предоставить способ переключения между документами или просмотра списка открытых окон, и пользователю, возможно, придется использовать специфичное для приложения меню («список окон» или что-то подобное) для переключения между открытыми документами. Это отличается от приложений SDI, где панель задач оконного менеджера или диспетчер задач отображают текущие открытые окна. В последние годы приложения MDI все чаще используют «вкладки» для отображения текущих открытых окон. Интерфейс, в котором вкладки используются для управления открытыми документами, называется «интерфейсом с вкладками » (TDI). Другой вариант — «плиточные» панели или окна, которые упрощают предотвращение перекрытия содержимого.
Некоторые приложения позволяют пользователю переключаться между этими режимами по своему выбору, в зависимости от личных предпочтений или поставленной задачи.
Почти все наборы инструментов графического пользовательского интерфейса на сегодняшний день предоставляют по крайней мере одно решение для проектирования MDI. Заметным исключением был Cocoa API от Apple до появления групп окон с вкладками в MacOS High Sierra . Например, набор инструментов Java GUI Swingjavax.swing.JDesktopPane предоставляет класс , который служит контейнером для отдельных фреймов (класс javax.swing.JInternalFrame). В GTK отсутствует какая-либо стандартизированная поддержка MDI.
Преимущества
В многодокументных интерфейсах (а также в интерфейсах с вкладками документов ) одна строка меню и/или панель инструментов являются общими для всех дочерних окон, что уменьшает беспорядок и повышает эффективность использования экранного пространства. Этот аргумент менее уместен в операционной системе, которая использует общую строку меню.
Дочерние окна приложения могут быть скрыты/показаны/свернуты/развернуты целиком.
Для дочерних окон можно реализовать такие функции, как «Плитка» и «Каскад».
Авторы кроссплатформенных приложений могут предоставить своим пользователям единообразное поведение приложений на разных платформах.
Если в оконной среде и ОС отсутствуют эффективные средства управления окнами, автор приложения может реализовать их самостоятельно.
Модульность: усовершенствованный оконный менеджер можно обновлять независимо от приложений.
Недостатки
Без окна MDI-фрейма плавающие панели инструментов одного приложения могут загромождать рабочее пространство других приложений, потенциально запутывая пользователей нагромождением интерфейсов.
Может быть сложно реализовать на настольных компьютерах с несколькими мониторами, поскольку родительское окно может охватывать два или более мониторов, скрывая разделы.
Виртуальные рабочие столы не могут быть охвачены дочерними элементами MDI. Однако в некоторых случаях это можно решить, инициировав другое родительское окно; например, это касается Opera и Chrome , которые позволяют перетаскивать вкладки/дочерние окна за пределы родительского окна, чтобы запустить их собственное родительское окно. В других случаях каждое дочернее окно также является родительским окном, образуя новый, «виртуальный» MDI [1].
MDI может затруднить одновременную работу с несколькими приложениями, ограничивая способы, которыми окна нескольких приложений могут быть расположены вместе, не заслоняя друг друга.
Общее меню может измениться, что может вызвать путаницу у некоторых пользователей.
Дочерние окна MDI ведут себя иначе, чем в приложениях с интерфейсом из одного документа , требуя от пользователей изучения двух тонко различающихся концепций окон. Аналогично, родительское окно MDI во многих отношениях ведет себя как рабочий стол, но имеет достаточно различий, чтобы сбить с толку некоторых пользователей.
Глубоко вложенные, разветвленные иерархии дочерних окон могут сбивать с толку.
Многие оконные менеджеры имеют встроенную поддержку для управления группами отдельных окон, что обычно более гибко, чем MDI, поскольку окна можно группировать и разгруппировывать произвольно. Типичная политика — автоматическая группировка окон, принадлежащих одному приложению. Это, возможно, делает MDI избыточным, предоставляя решение той же проблемы.
Элементы управления и горячие клавиши, изученные для приложения MDI, могут не применяться к другим, тогда как при использовании расширенного диспетчера окон больше настроек поведения и пользовательских предпочтений являются общими для всех клиентских приложений в одной системе.
Примеры применения
Adobe Acrobat : MDI до версии 7.0 ( только для Windows ); SDI по умолчанию в 8.0 (можно настроить на MDI); SDI только в 9.0; MDI (с интерфейсом с вкладками) в версии 2015.
Corel Wordperfect : MDI. Пользователь может открыть несколько экземпляров WP с одним документом в каждом, если на его компьютере установлено несколько версий WordPerfect. Последние версии поддерживают список открытых документов для данного окна в строке состояния в нижней части окна, предоставляя вариант TDI.
KWrite : Еще один текстовый редактор, разработанный для KDE Software Compilation , с упрощенным SDI, но разделяющий многие функции Kate через общий бэкэнд.
Кейт : Текстовый редактор, разработанный для KDE Software Compilation , с расширенными функциями и сложным MDI.
Macromedia Studio для Windows: гибридный интерфейс; TDI, если окна документов не развернуты. (По умолчанию они развернуты.)
Microsoft Excel 2003: SDI, если вы запускаете новые экземпляры приложения, но MDI, если вы нажимаете меню «Файл ? Создать» (но дочерние окна могут отображаться на панели задач ОС). SDI только с 2013 года.
Microsoft Word 2003: MDI до Microsoft Office 97. После 2000 года Word имеет интерфейс Multiple Top-Level Windows, таким образом, открывая оболочке отдельные экземпляры SDI, в то время как операционная система распознает его как один экземпляр приложения MDI. В Word 2000 это был единственный доступный интерфейс, но 2002 и более поздние версии предлагают MDI в качестве опции. Microsoft Foundation Classes (на котором Office в некоторой степени основан) поддерживает эту метафору с версии 7.0 как новую функцию в Visual Studio 2002. SDI только с 2013 года.
UltraEdit : сочетание MDI и TDI (настоящий интерфейс MDI с панелью вкладок для быстрого доступа).
VEDIT : Комбинация MDI и TDI (настоящий интерфейс MDI с панелью вкладок для быстрого доступа). Специальные окна "полного размера" действуют как развернутые окна, но позволяют одновременно использовать меньшие перекрывающиеся окна. Можно запустить несколько экземпляров Vedit, что позволяет использовать его как приложение SDI.
mIRC : MDI по умолчанию, также может работать в режиме SDI
Adobe Photoshop : MDI под Windows. В более новых версиях панели инструментов могут выходить за пределы окна фрейма. Дочерние окна могут находиться за пределами фрейма, если они не свернуты или не развернуты.
Интерфейс в стиле IDE
Графические компьютерные приложения с интерфейсом в стиле IDE (IDE) — это те, чьи дочерние окна находятся под одним родительским окном (обычно за исключением модальных окон ). Интерфейс в стиле IDE отличается от интерфейса с несколькими документами (MDI), поскольку все дочерние окна в интерфейсе в стиле IDE улучшены дополнительными функциями, обычно не доступными в приложениях MDI. Из-за этого приложения в стиле IDE можно считать функциональным надмножеством и потомком приложений MDI.
Примеры улучшенной функциональности дочерних окон включают в себя:
Распространенным соглашением для дочерних окон в приложениях в стиле IDE является возможность сворачивать дочерние окна, либо когда они неактивны, либо когда это указано пользователем. Свернутые дочерние окна будут соответствовать одной из четырех внешних границ родительского окна с некоторой меткой или индикатором, который позволяет им снова разворачиваться.
Интерфейс документа с вкладками для подпанелей
В отличие от приложений (MDI), которые обычно допускают использование одного интерфейса с вкладками для родительского окна, приложения с интерфейсом в стиле IDE допускают использование вкладок для организации одной или нескольких подпанелей родительского окна.
MacOS и его графический интерфейс ориентированы на документ, а не на окно или приложение. Каждое окно документа — это объект, с которым может работать пользователь. Строка меню изменяется в зависимости от того, к какому приложению принадлежит переднее окно. Окна приложений можно скрывать и управлять ими как группой, а пользователь может переключаться между приложениями (т. е. группами окон) или между отдельными окнами, автоматически скрывая палитры , и большинство программ будут продолжать работать даже без открытых окон. Действительно, до Mac OS X было намеренно невозможно чередовать окна из нескольких приложений.