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:

1
2
3
DataContext dataContext = DataManager.getInstance().getDataContext(); 
AnActionEvent event = ActionUtils.createEvent(ActionPlaces.UNKNOWN, dataContext); 
ActionUtils.updateAndPerformAction(new UiInspectorAction(), event);

ui inspector action

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.

Kroki

  1. IntelliJ-specific implementation of JFrame ⧉
  2. IntelliJ-specific implementation of JRootPane. It also contains the toolbar and status bar ⧉.
  3. 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.
  4. RootPane/How to Use Root Panes ⧉: The layered pane contains the menu bar and content pane and enables Z-ordering of other components
  5. IntelliJ-specific implementation of JMenuBar ⧉
  6. IntelliJ-specific implementation of JPanel ⧉
  7. an entry in the main menu
  8. the navigation bar ⧉
  9. the pane containing the tool window stripes
  10. the status bar ⧉
  11. the stripes containing the tool window ⧉ buttons
  12. a button opening a tool window
  13. the pane containing the main content
  14. Three components split by two dividers horizontally or vertically
  15. the window of the opened bottom tool
  16. the header and divider of 15
  17. the opened bottom tool window
  18. a tab in a tool window
  19. a panel containing the editor
  20. the opened left tool window
  21. the document tabs ⧉ enabling the navigation between opened editors
  22. the editor window
  23. A class hiding the internal structure of a UI component which represents a set of opened editors
  24. MPS version of an IntelliJ document ⧉ editor
  25. the panel containing the MPS editor
  26. the editor component ⧉ itself
  27. a pane supporting zooming with the mouse wheel and scrolling
  28. the vertical scrollbar of the editor component
  29. the horizontal scrollbar of the editor component
  30. the left editor highlighter (left gutter ⧉)
  31. an editor component for editing nodes
  32. the intentions ⧉ menu
  33. validation sidebar/marker bar ⧉

Last update: July 9, 2023

Comments