Skip to content

Graphical User Interface

MathJet’s GUI is organized around two halves: a central tab widget that holds the document you’re currently editing (a chart sheet, a spreadsheet, or a script editor), and a set of dockable tool windows that surround it for inputs, displays, interaction, and debugging.

The design intentionally mirrors the architecture: because the spreadsheet, the visualization engine, and the scripting runtime share one process and one memory space, the tool windows in the GUI can reflect the same data live — selections, edits, and probes that happen in one window propagate to every other window that shows the affected object.

TopicWhat it covers
Window LayoutThe MathJet main window — menu bar, standard and context toolbars, central tab widget, status bar, dock zones.
Workspace ManagerHierarchical / categorical view of every object in a session, with selection sync to the active document.
Environment WindowTabular display of variables, datasets, and functions in the active interpreter’s evaluation stack.
Data Source WindowOpen data sources — files and database connections — with the same tabular layout as the Environment Window.
Overview WindowVisual synopsis of the focus data object: charts, graphs, tables, columns, variables, external sources.
Graph CompanionSpreadsheet-style table of the underlying data for every graph in the active chart, with two-way selection sync.
Command EditorREPL for the active interpreter — the built-in language plus selectable external installations (Octave, Python, R).
Command RecorderLogged history of executed and auto-recorded statements with reverse-execution (undo) support.
Debug WindowsBreakpoints, watches, call stack, and local variables for stepping through any supported language.
File BrowserFilesystem navigation with one-click previews of supported file types in the central tab.
Property EditorLive property inspector for whatever object has focus in the active document or Workspace Manager.
Find and ReplaceThe Quick Find widget — unified find / replace across charts, worksheets, and code editors.

Design conventions across all tool windows

Section titled “Design conventions across all tool windows”

Most tool windows share the same basic patterns, so once you know one window you know parts of every other one:

  • Filter / search box in the toolbar at the top of each window. Type keywords to filter visible items by name (or, in some windows, by value).
  • Options drop-down for window-specific behavior — filtering mode, data layout, complex-number display format, etc.
  • Drag-and-drop between windows. Variables can be dragged from Environment / Data Source / Watches into spreadsheets, charts, or the Code Editor; graphs can be dragged across charts.
  • Selection synchronization. Selecting an item in a tool window highlights it in the active document, and vice versa. The view scrolls automatically when needed so the linked item is visible.
  • Dockable. Every tool window can be docked into one of the layout zones around the central tab, undocked into a floating window, resized, and saved as part of the workspace layout (.mjw).

The cross-window consistency is intentional. It means a workflow that relies on, say, “filter by name → select → drag into spreadsheet” is the same gesture in five different tool windows.