Multiple document interface  ( English multiple document interface, MDI ) - a way to organize a graphical user interface , involving the use of a window interface in which most windows (except, as a rule, only modal windows ) are located within one common window. This is what distinguishes it from SDI , in which windows are located independently of each other. Developers make extensive use of both types of interface, and often a mixed type interface. For example, Microsoft changed the Microsoft Office interface from SDI to MDI, and then moved back to SDI, although the degree of implementation includes both the first and second.
Among the shortcomings of MDI, the lack of clear information about open windows was often indicated; to view the current list of open windows in an application, the user needed to select the “ open windows / window list ” item, or similar. Recently, taskbars and tabs have begun to appear in applications for displaying open windows in MDI. This type of interface is sometimes referred to as tabbed multi-document interface (TDI), although in fact it is a variation of MDI.
Almost all application designers and editors today provide at least one solution for creating an MDI interface. So, for example, in the library for creating a graphical interface in Java , called Swing , there is a class
javax.swing.JDesktopPane , which creates containers for individual frames (class
javax.swing.JInternalFrame ). In another popular set of interface elements - GTK + - there is no such possibility.
Comparison with SDI
- In an MDI type interface (as in TDI ), a common menu bar and toolbar for all child windows, which reduces the clutter of the screen with interface elements and increases its usable area.
- All application windows can be hidden / shown, minimized / maximized and perform other manipulations with them, as with a single window.
- Child windows can be placed with “tiles” or “cascade” in the main window.
- Increased speed and memory savings when working in one window, the switching speed between child windows is also higher than between peers in the operating system environment .
- Some applications provide hotkeys for quick navigation, in particular for switching between windows. This further enhances the speed and usability of the application, as additional operating system resources are not used.
- A logical decision if the windows are part of one project.
- It is difficult (often impossible) to display the contents of different child windows on different monitors.
- It is also impossible to display their contents on different virtual desktops .
- MDI can make it difficult to work in parallel with different applications, as switching between external windows of different programs and child windows of one is inconvenient.
- Floating toolbars of one application can overlap the working window of another, blocking the view, and sometimes confusing the user - which panel belongs to which application.
- The user needs to get used to both types of interfaces, since the introduction of MDI does not completely abolish the use of SDI, which is embedded in most operating systems.
- Many window systems ( 3D Desktop , Exposé ) allow you to comfortably switch between programs. Such switching between document windows, as a rule, does not work.
- Chaos on the "desktop" of the program, when several documents are opened simultaneously.
- By default, the MDI interface used in Windows does not support means for switching between program windows, such as the taskbar .
- Chris Anderson. Windows Presentation Foundation Basics. - DMK Press, 2008 .-- S. 68. - ISBN 978-5-457-49581-4 .