Multiple document interface

|

원문 : http://en.wikipedia.org/wiki/Multiple_document_interface

Graphical computer applications with a multiple document interface (MDI) are those whose windows reside under a single parent window (usually with the exception of modal windows), as opposed to all windows being separate from each other (single document interface). The initialism MDI is usually not expanded. In the usability community, there has been much debate over which interface type is preferable. Generally SDI is seen as more useful in cases where users work with more than one application. Companies have used both interfaces with mixed responses. For example, Microsoft has changed its Office applications from SDI to MDI mode and then back to SDI, although the degree of implementation varies from one component to another.

The disadvantage of MDI usually cited is the lack of information about the currently opened windows: In order to view a list of windows open in MDI applications, the user typically has to select a specific menu ("window list" or something similar), if this option is available at all. With an SDI application, the window manager's task bar or task manager displays the currently opened windows. In recent years, applications have increasingly added "task-bars" and "tabs" to show the currently opened windows in an MDI application, which has made this criticism somewhat obsolete. Some people use a different name for this interface, "tabbed document interface" (TDI). When tabs are used to manage windows, individual ones usually cannot be resized.

Nearly all graphical user interface toolkits to date provide at least one solution for designing MDIs. The Java GUI toolkit, Swing, for instance, provides the class javax.swing.JDesktopPane which serves as a container for individual frames (class javax.swing.JInternalFrame). GTK+ lacks any standardized support for MDI.

 

Compared to single document interface
Advantages
  • With MDI (and also TDI), a single menu bar and/or toolbar is shared between all child windows, reducing clutter and increasing efficient use of screen space.
  • 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.
  • Possibly faster and more memory efficient, since the application is shared, and only the document changes. the speed of switching between the internal windows is usually faster than having the OS switch between external windows.
  • Some applications have keyboard shortcuts to quickly jump to the functionality you need (faster navigating), and this doesn't need the OS or window manager support, since it happens inside the application.

Disadvantages
  • Can be tricky to implement on desktops using multiple monitors as the parent window may need to span two or more monitors.
  • Virtual desktops cannot be spanned by children of the MDI. However, in some cases, this is solveable by initiating another parent window; this is the case in Opera, for example, which allows tabs/child windows to be dragged outside of the parent window to start their own parent window (on Windows). In other cases, each child window is also a parent window, forming a new, "virtual" MDI[1].
  • 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 an MDI frame window, floating toolbars from one application can clutter the workspace of other applications, potentially confusing users with the jumble of interfaces.
  • The shared menu might change, which may cause confusion to some users.
  • 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.
  • 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.
And