TuPrologIDEController
The FXML controller (TuPrologIDEView.fxml) backing the main tuProlog IDE window: it owns a private TuPrologIDEModel (created via TuPrologIDEModel.of) and, in initialize, subscribes to every one of its onXxx event streams to keep the file tabs, solutions list, stdout/stderr panes, operators/flags/libraries tables, and static/dynamic knowledge base views up to date; conversely, every @FXML-annotated method reacts to a widget event by calling into the model (e.g. onNextButtonPressed calls TuPrologIDEModel.solve/ TuPrologIDEModel.next). It implements the model/view separation described in TuPrologIDEModel's KDoc.
Instances of this class are normally created by javafx.fxml.FXMLLoader (as done by TuPrologIDEBuilder.show), not directly; customizeModel, addTab, setOnClose, and setOnAbout are the hooks a host application uses (through TuPrologIDEBuilder) to extend the wired-up controller.
Functions
Runs setup against this controller's private TuPrologIDEModel, e.g. to load extra libraries or subscribe to events.
Wires every widget declared by TuPrologIDEView.fxml to the private TuPrologIDEModel's event streams, creates the model's first (empty, temporary) file via TuPrologIDEModel.newFile, and resets the solver via TuPrologIDEModel.reset. Called once by the javafx.fxml.FXMLLoader after injecting the @FXML fields.
Replaces the handler invoked when the user selects the "about" menu entry.
Replaces the handler invoked when the user requests to close the window (wired to the "quit" menu entry).