Platform UI Inspector
The following example shows the internal structure of MPS in regard to the Swing ⧉ components. Most of the structure is predetermined by the IntelliJ platform. IntelliJ has a UI inspector for debugging purposes. MPS turns it off by default, but you can enable it on the MPS console through the following code:
The following tree shows how the IDE is structured internally, from the main frame down to the light bulb menu. Some entries, like menus or tabs, can occur more than once. The structure might be slightly different in another MPS version because of the different versions of the IntelliJ platform.
- IntelliJ-specific implementation of JFrame ⧉
- IntelliJ-specific implementation of JRootPane. It also contains the toolbar and status bar ⧉.
- RootPane/How to Use Root Panes ⧉: The glass pane is often used to intercept input events occurring over the top-level container and can also be used to paint over multiple components.
- RootPane/How to Use Root Panes ⧉: The layered pane contains the menu bar and content pane and enables Z-ordering of other components
- IntelliJ-specific implementation of JMenuBar ⧉
- IntelliJ-specific implementation of JPanel ⧉
- an entry in the main menu
- the navigation bar ⧉
- the pane containing the tool window stripes
- the status bar ⧉
- the stripes containing the tool window ⧉ buttons
- a button opening a tool window
- the pane containing the main content
- Three components split by two dividers horizontally or vertically
- the window of the opened bottom tool
- the header and divider of 15
- the opened bottom tool window
- a tab in a tool window
- a panel containing the editor
- the opened left tool window
- the document tabs ⧉ enabling the navigation between opened editors
- the editor window
- A class hiding the internal structure of a UI component which represents a set of opened editors
- MPS version of an IntelliJ document ⧉ editor
- the panel containing the MPS editor
- the editor component ⧉ itself
- a pane supporting zooming with the mouse wheel and scrolling
- the vertical scrollbar of the editor component
- the horizontal scrollbar of the editor component
- the left editor highlighter (left gutter ⧉)
- an editor component for editing nodes
- the intentions ⧉ menu
- validation sidebar/marker bar ⧉