Multiple-document interface: Difference between revisions

Content deleted Content added
See also: link center stage
 
(38 intermediate revisions by 32 users not shown)
Line 1:
{{Short description|Type of software application interface}}{{Nf|date=August 2024}}[[Image:Some X windows.svg|thumb|An example of a multiple-document interface layout]]
{{multiple issues|
A '''multiple -document interface''' ('''MDI''') is a [[graphical user interface]] in which multiple windows reside under a single parent window. Such systems often allow child windows to embed other windows inside them as well, creating complex [[Hierarchy#Nested hierarchy|nested hierarchies]]. This contrasts with [['''single -document interface]]sinterfaces''' ('''SDI''') where all windows are independent of each other.
{{Unreferenced|date=August 2007}}
{{Weasel|date=January 2009}}
}}
 
[[Image:Some==Comparison X windows.svg|thumb|An example of a multiplewith single-document interface layout]]==
In the [[usability]] community, there has been much debate about whether the multiple -document or single -document interface is preferable. Software companies have used both interfaces with mixed responses. For example, [[Microsoft]] changed its [[Microsoft Office|Office]] applications from SDI to MDI mode and then back to SDI, although the degree of implementation varies from one component to another. Generally, SDI is seen{{by whom|date=January 2012}}can asbe more useful in cases where users work withswitch more often between separate applications than among the windows of one application.
A '''multiple document interface''' ('''MDI''') is a [[graphical user interface]] in which multiple windows reside under a single parent window. Such systems often allow child windows to embed other windows inside them as well, creating complex [[Hierarchy#Nested hierarchy|nested hierarchies]]. This contrasts with [[single document interface]]s ('''SDI''') where all windows are independent of each other.
 
TheMDI disadvantagecan ofbe MDIconfusing usuallyif citedit ishas itsa lack of information about the currently opened windows:. In MDI applications, the application developer must provide a way to switch between documents or view a list of open windows, and the user might have to use an application-specific menu ("window list" or something similar) to switch between open documents. This is indifferent contrast tofrom SDI applications, where the window manager's [[task bar]] or [[task manager]] displays the currently opened windows. However, inIn recent years it has become increasingly common for MDI applications to use "tabs" to display the currently opened windows, which has made this criticism somewhat obsolete. An interface in which tabs are used to manage open documents is referred to{{by whom|date=January 2012}} as a "[[tabbed document interface]]" (TDI). Another option is "tiled" [[Paned window (computing)|panes]] or windows, which make it easier to prevent content from overlapping.
==Comparison with single document interface==
In the [[usability]] community, there has been much debate about whether the multiple document or single document interface is preferable. Software companies have used both interfaces with mixed responses. For example, [[Microsoft]] changed its [[Microsoft Office|Office]] applications from SDI to MDI mode and then back to SDI, although the degree of implementation varies from one component to another. Generally, SDI is seen{{by whom|date=January 2012}} as more useful in cases where users work with more than one application.
 
The disadvantage of MDI usually cited is its lack of information about the currently opened windows: In MDI applications, the application developer must provide a way to switch between documents or view a list of open windows, and the user might have to use an application-specific menu ("window list" or something similar) to switch between open documents. This is in contrast to SDI applications, where the window manager's [[task bar]] or [[task manager]] displays the currently opened windows. However, in recent years it has become increasingly common for MDI applications to use "tabs" to display the currently opened windows, which has made this criticism somewhat obsolete. An interface in which tabs are used to manage open documents is referred to{{by whom|date=January 2012}} as a "[[tabbed document interface]]" (TDI).
 
Another option is "tiled" [[Paned window|panes]] or windows, which make it easier to prevent content from overlapping.
 
Some applications allow the user to switch between these modes at their choosing, depending on personal preference or the task at hand.
 
Nearly all [[graphical user interface]] toolkits to date provide at least one solution for designing MDIs,. withA annotable exception beingwas [[Cocoa (API)|Apple's Cocoa API]] until the advent of tabbed window groups in [[MacOS High Sierra]]. The [[Java (programming language)|Java]] GUI toolkit, [[Swing (Java)|Swing]], for instance, provides the class {{Javadoc:SE|package=javax.swing|javax/swing|JDesktopPane|module=java.desktop}} which serves as a container for individual frames (class {{Javadoc:SE|package=javax.swing|javax/swing|JInternalFrame|module=java.desktop}}). [[GTK+]] lacks any standardized support for MDI.
 
===Advantages===
* With multiple -document interfaces (and also [[tabbed document interface]]s), a single menu bar and/or [[toolbar]] is shared between all child windows, reducing clutter and increasing efficient use of screen space. This argument is less relevant on an operating system which uses a common menu bar.
* An application's child windows can be hidden/shown/minimized/maximized as a whole.
* Features such as "Tile" and "Cascade" can be implemented for the child windows.
* Authors of cross-platform applications can provide their users with consistent application behaviour between platforms.
* If the windowing environment and OS lack good window management, the application author can implement it themselves.
* Modularity: An advanced window manager can be upgraded independently of the applications.
 
===Disadvantages===
* Without an MDI frame window, floating toolbars from one application can clutter the workspace of other applications, potentially confusing users with the jumble of interfaces.
* Can be tricky to implement on desktops using multiple monitors as the parent window may need to span two or more monitors, hiding sections.
* [[Virtual desktop]]s cannot be spanned by children of the MDI. However, in some cases, this is solveablesolvable by initiating another parent window; this is the case in [[Opera (web browser)|Opera]] and [[Google Chrome|Chrome]], for example, which allows tabs/child windows to be dragged outside of the parent window to start their own parent window. In other cases, each child window is also a parent window, forming a new, "virtual" MDI [https://web.archive.org/web/20110818050252/http://hypotext.webs.com/web1.htm].
* MDI can make it more difficult to work with several applications at once, by restricting the ways in which windows from multiple applications can be arranged together without obscuring each other.
* The shared menu might change, which may cause confusion to some users. <!-- But if this is a common problem, why is it not a problem on OS X, where the menu bar is shared by ''all'' applications? Can someone actually cite studies on this subject? ( I agree to this comment --~~~~ ) -->
* MDI child windows behave differently from those in [[single -document interface]] applications, requiring users to learn two subtly different windowing concepts. Similarly, the MDI parent window behaves like the desktop in many respects, but has enough differences to confuse some users.
* Deeply nested, branching hierarchies of child windows can be confusing.
* Many window managers have built-in support for manipulating groups of separate windows, which is typically more flexible than MDI in that windows can be grouped and ungrouped arbitrarily. A typical policy is to group automatically windows that belong to the same application. This arguably makes MDI redundant by providing a solution to the same problem.
* Controls and hotkeys learned for the MDI application may not apply to others, whereas with an advanced Window Manager, more behavior and user preference settings are shared across client applications on the same system
* Without an MDI frame window, floating toolbars from one application can clutter the workspace of other applications, potentially confusing users with the jumble of interfaces.
 
==Application examples==
* [[Adobe Acrobat]]: MDI until version 7.0 ([[Microsoft Windows|Windows]]-only); SDI default in 8.0 (configurable to MDI); SDI only in 9.0; MDI (with a tabbed interface) in version 2015.
* [[Corel Wordperfect]]: MDI. A user can open multiple instances of WP with a single document in each, if they have multiple versions of WordPerfect installed on their computer. Recent versions maintain a list of open documents for a given window on the status bar at the bottom of the window, providing a variant of the TDI.
* [[EmEditor]]: Options for either SDI or MDI.
* [[GIMP]]: SDI with floating windows (MDI is available as an option called "Single-Window Mode" since version 2.8 [http://www.gimp.org/release-notes/gimp-2.8.html]).
* [[GIMPshop]]: A [[fork (software development)|fork]] of GIMP aiming to be more like Adobe Photoshop. The [[Microsoft Windows|Windows]] version has limited MDI.[https://web.archive.org/web/20050717005118/http://blog.yumdap.net/archives/20-GIMPshop-for-Windows.html]
* [[Google Chrome|Chrome]]: Combination of MDI and TDI.
* [[Internet Explorer 6]]: a typical SDI application
* [[KWrite]]: Another text editor designed for the [[KDE Software Compilation]], with a simplified SDI but sharing many of Kate's features via a mutual [[Front and back ends|back end]]
* [[Visual Studio|Visual Studio 6]] development environment: a typical modern MDI
* [[Kate (text editor)|Kate]]: Text editor designed for the [[KDE Software Compilation]], with advanced features and a sophisticated MDI
* [[Visual Studio .NET]]: MDI or TDI with "Window" menu, but not both
* [[Macromedia Studio]] for Windows: a hybrid interface; TDI unless document windows are un-maximized. (They are maximized by default.)
* [[Microsoft Excel]] 2003: SDI if you start new instances of the application, but MDI if you click the "File ? New" menu (but child windows optionally appear on the OS taskbar). SDI only as of 2013.
* [[Microsoft Word]] 2003: MDI until [[Microsoft Office]] 97. After 2000, Word has a [[Multiple Top-Level Windows Interface]], thus exposing to shell individual SDI instances, while the operating system recognizes it as a single instance of an MDI application. In Word 2000, this was the only interface available, but 2002 and later offer MDI as an option. [[Microsoft Foundation Classes]] (which Office is loosely based on) supports this metaphor since version 7.0, as a new feature in [[Visual Studio]] 2002. SDI only as of 2013.
* [[Mozilla Firefox|Firefox]]: TDI by default, can be SDI
* [[Notepad++]], [[PSPad]], [[TextMate]] and many other text editors: TDI
* [[Opera (web browser)|Opera]]: Combination of MDI and TDI (a true MDI interface with a tab bar for quick access).
* [[Google Chrome|Chrome]]: Combination of MDI and TDI.
* [[Paint.NET]]: Thumbnail-based, TDI
* [[Mozilla Firefox|Firefox]]: TDI by default, can be SDI
 
* [[GIMP]]: SDI with floating windows (MDI is available as an option called "Single-Window Mode" since version 2.8 [http://www.gimp.org/release-notes/gimp-2.8.html]).
* [[GIMPshop]]: A [[fork (software development)|fork]] of GIMP aiming to be more like Adobe Photoshop. The Windows version has limited MDI.[http://blog.yumdap.net/archives/20-GIMPshop-for-Windows.html]
* [[Adobe Photoshop]]: MDI under MS Windows. In newer versions, toolbars can move outside the frame window. Child windows can be outside the frame unless they are minimized or maximized.
* [[Adobe Acrobat]]: MDI until version 7.0 (Windows-only); SDI default in 8.0 (configurable to MDI); SDI only in 9.0.
* [[Microsoft Excel]] 2003: SDI if you start new instances of the application, but MDI if you click the "File → New" menu (but child windows optionally appear on the OS taskbar)
* [[Microsoft Word]] 2003: MDI until [[Microsoft Office]] 97. After 2000, Word has a [[Multiple Top-Level Windows Interface]], thus exposing to shell individual SDI instances, while the operating system recognizes it as a single instance of an MDI application. In Word 2000, this was the only interface available, but 2002 and later offer MDI as an option. [[Microsoft Foundation Classes]] (which Office is loosely based on) supports this metaphor since version 7.0, as a new feature in [[Visual Studio]] 2002.
* [[UltraEdit]]: Combination of MDI and TDI (a true MDI interface with a tab bar for quick access).
* [[VEDIT]]: Combination of MDI and TDI (a true MDI interface with a tab bar for quick access). Special "Full size" windows act like maximized windows, but allow smaller overlapping windows to be used at the same time. Multiple instances of Vedit can be started, which allows it to be used like an SDI application.
* [[Visual Studio .NET]]: MDI or TDI with "Window" menu, but not both
* [[Notepad++]], [[PSPad]], [[TextMate]] and many other text editors: TDI
* [[Visual Studio|Visual Studio 6]] development environment: a typical modern MDI
* [[EmEditor]]: Options for either SDI or MDI.
* [[Macromedia Studio]] for Windows: a hybrid interface; TDI unless document windows are un-maximized. (They are maximized by default.)
* [[Corel Wordperfect]]: MDI. A user can open multiple instances of WP with a single document in each, if they have multiple versions of WordPerfect installed on their computer. Recent versions maintain a list of open documents for a given window on the status bar at the bottom of the window, providing a variant of the TDI.
* [[Zeus for Windows]]: Combination of MDI and TDI (a true MDI interface with a tab bar for quick access).
* [[mIRC]]: MDI by default, can also work on SDI mode
* [[Adobe Photoshop]]: MDI under MS Windows. In newer versions, toolbars can move outside the frame window. Child windows can be outside the frame unless they are minimized or maximized.
<!---
===Classic examples===
This is a list of examples from back in the days of [[Windows 95]], and [[Windows 3.x]]
* [[Program Manager]]
* [[File Manager (Windows)|File Manager]]
<ref>d</ref>--->
 
==IDE-style interface==
Graphical computer applications with an '''[[Integrated development environment|IDE]]-style interface''' (IDE) are those whose child windows reside under a single parent window (usually with the exception of [[modal window]]s). An IDE-style interface is distinguishable formfrom ofthe Multiple -Document Interface (MDI), because all child windows in an IDE-style interface are enhanced with added functionality not ordinarily available in MDI applications. Because of this, IDE-style applications can be considered a functional superset and descendant of MDI applications.
 
Graphical computer applications with an '''[[Integrated development environment|IDE]]-style interface''' (IDE) are those whose child windows reside under a single parent window (usually with the exception of [[modal window]]s). An IDE-style interface is distinguishable form of Multiple Document Interface (MDI), because all child windows in an IDE-style interface are enhanced with added functionality not ordinarily available in MDI applications. Because of this, IDE-style applications can be considered a functional superset and descendant of MDI applications.
 
Examples of enhanced child-window functionality include:
* Dockable child windows
* CollapsableCollapsible child windows
* [[Tabbed document interface]] for sub-panes
* Independent sub-panes of the parent window
Line 91 ⟶ 83:
* [[Visual Studio|Visual Studio 6]]
* [[Visual Studio .NET]]
* [[Visual Studio Code]]
* [[RSS Bandit]]
* [[JEdit]]
* [[MATLAB]]
* [[Microsoft Office Excel]] when in MDI mode (see above).
 
== Macintosh ==
Mac OSMacOS and its GUI are document-centric instead of window-centric or application-centric. Every document window is an object with which the user can work. The menu bar changes to reflect whatever application the front window belongs to. Application windows can be hidden and manipulated as a group, and the user may switch between applications (i.e., groups of windows) or between individual windows, automatically hiding [[Palette window|palettes]], and most programs will stay running even with no open windows. Indeed, prior to [[Mac OS X]], it was purposely impossible to interleave windows from multiple applications.
 
In spite of this, some unusual applications breaking the [[human interface guidelines]] (most notably [[Photoshop]]) do exhibit different behavior.
 
==See also==
* [[Graphical user interface]]
* [[Comparison of document interfaces]]
* [[Tabbed document interface]]
* [[SingleTiling documentwindow interfacemanager]]
* [[Integrated development environment]]
*[[Tiling window manager]]
* [[Center stage (user interface)]] - a user interface pattern used with single-document or IDE-style interfaces
*[[Integrated development environment]]
 
==References==
* {{cite book | title=Human Computer Interaction | publisher=Laxmi Publications | year=2005 | isbn=978-81-7008-795-3 | url=https://books.google.com/books?id=lesSGjUsgTkC&pg=PA54 | ref={{sfnref | Laxmi Publications | 2005}} | access-date=2022-07-18}}
 
==External links==
*[httphttps://web.archive.org/web/20080530025541/http://pixelcentric.net/x-shame/docs.html Interface Hall of Shame] arguments against MDI
*[http://csharp-talks.blogspot.com/2013/12/mdi-forms-in-net-using-c-and-visual.html MDI forms using C#] MDI forms in .net using C# and Visual Studio 2010 Express