Structural Bioinformatics Library
Template C++ / Python API for developping structural bioinformatics applications.
GUIGeneratorManager Class Reference

Public Member Functions

None __init__ (self, str ui_file, str exe_name, str flags_file, str post_script=None, str update_flags_file=None, str gui_format="pyqt", str output_folder=None)
None run (self)

Detailed Description

Execute the full UI-to-GUI-plugin pipeline for a chosen framework.

Components orchestrated:
  • UiToJsonConverter
      Parse Qt `.ui` geometry and widget hierarchy → JSON skeleton.

  • GUIInputPanelJsonGenerator
      Parse `<exe> --help` and selected flags → add input controls to JSON.

  • GUIUpdatePanelJsonGenerator (optional)
      Inject update-area controls (for dynamic refresh logic).

  • CodeGenerator
      Render framework-specific GUI source files and asset templates.

Result:
  A complete runnable GUI/plugin folder (PyQt6/PyMOL, Tkinter/VMD, or Panel/Web).

Execute the full UI-to-GUI-plugin pipeline for a chosen framework. Orchestrates the entire process of converting a Qt Designer .ui file and a set of CLI parameters into a complete, runnable GUI/plugin project for a specific framework (e.g., PyQt, Tkinter, Panel).

Constructor & Destructor Documentation

◆ __init__()

None __init__ ( self,
str ui_file,
str exe_name,
str flags_file,
str post_script = None,
str update_flags_file = None,
str gui_format = "pyqt",
str output_folder = None )
Initialize a new workflow manager.

Member Function Documentation

◆ run()

None run ( self)
Execute the complete workflow:

  1) Derive app name + JSON target filename.
  2) Convert `.ui` → base JSON widget/geometry specification.
  3) Parse CLI help + selected flags → inject GUI input panel.
  4) (Optional) Inject update-panel controls for dynamic refresh.
  5) Generate framework-specific GUI code files.
  6) Copy template assets and install generated code.

Output:
  A fully materialized GUI project directory at `self.output_folder`.

Notes:
  • Platform subfolder is chosen automatically unless explicitly given.
  • JSON file serves as an intermediate reproducible specification.
  • Output folder becomes:
        <base>/pymol, <base>/vmd, or <base>/web