IFW Widget Library Logo
2.0.1

Table of Contents

  • 1. Introduction
    • 1.1. Purpose
    • 1.2. Scope
    • 1.3. Disclaimer
    • 1.4. Acronyms
    • 1.5. Nomenclature
  • 2. Overview
    • 2.1. Components
    • 2.2. Widget Architecture
    • 2.3. Typical Workflow
  • 3. BaseMalWidget
    • 3.1. What It Provides
    • 3.2. Using BaseMalWidget
    • 3.3. Method Reference
    • 3.4. See Also
  • 4. Communication Facades
    • 4.1. Connection Manager
      • 4.1.1. Using the Connection Manager
      • 4.1.2. Bulk Connection Management
      • 4.1.3. Custom Facades
    • 4.2. Facade Commands and Signals
      • 4.2.1. Common Signals
      • 4.2.2. Command Execution Pattern
    • 4.3. Available Facades
      • 4.3.1. STD IF Facade (StdCmdsFacade)
      • 4.3.2. DCS IF Facade (DcsCmdsFacade)
      • 4.3.3. REC IF Facade (RecCmdsFacade)
      • 4.3.4. FCF Facade (FcfCmdsFacade)
      • 4.3.5. SysSup Facade (SysSupCmdsFacade)
    • 4.4. Using Facades in Widgets
  • 5. CCF Widgets
    • 5.1. Widget Constructor Signatures
    • 5.2. Instantiating a Widget
    • 5.3. OLDB Paths Dataclasses
    • 5.4. Widget Descriptions
      • 5.4.1. CcfStateWidget
      • 5.4.2. CcfAcquisitionWidget
      • 5.4.3. CcfSetupWidget
      • 5.4.4. CcfRecordingWidget
      • 5.4.5. CcfPipelineWidget
      • 5.4.6. Publisher Widgets
        • 5.4.6.1. CcfBasePublisherWidget
        • 5.4.6.2. CcfDdtPublisherWidget
      • 5.4.7. Recipe Widget
        • 5.4.7.1. CcfBaseRecipeWidget
    • 5.5. Connection State Handling
    • 5.6. Laying Out a Basic Panel
  • 6. Utilities
    • 6.1. OLDB Query Functions
      • 6.1.1. get_children_from_ui_path
        • get_children_from_ui_path()
      • 6.1.2. check_datapoint_exists
        • check_datapoint_exists()
      • 6.1.3. get_datapoint_value
        • get_datapoint_value()
      • 6.1.4. get_datapoint
        • get_datapoint()
      • 6.1.5. get_datapoint_type
        • get_datapoint_type()
      • 6.1.6. get_datapoint_value_and_type
        • get_datapoint_value_and_type()
    • 6.2. ErrorDialog
      • ErrorDialog
    • 6.3. EventValueMap
      • EventValueMap
  • 7. SysSup Widgets
    • 7.1. Widget Constructor Signatures
    • 7.2. SubSysStateWidget
    • 7.3. CcfControlWidget
      • 7.3.1. Connection State Handling
      • 7.3.2. Error Handling
    • 7.4. NgcControlWidget
    • 7.5. Using SysSup Widgets in a Panel
  • 8. Utility Widgets
    • 8.1. DiskFreeWidget (ifw.wdglib.widgets.utils)
      • DiskFreeWidget
    • 8.2. CollapseButton (ifw.wdglib.widgets.common)
      • CollapseButton
    • 8.3. ReadoutWindowWidget (ifw.wdglib.widgets.common)
      • ReadoutWindowWidget
  • 9. Styles
    • 9.1. Available Themes
    • 9.2. How to Apply a Theme
    • 9.3. CiiLogsWidget Styling Fix
    • 9.4. Best Practices
  • 10. ccfGui Design Decisions
    • 10.1. ccfGui.py – Application Entry Point
      • 10.1.1. Command-Line Arguments
      • 10.1.2. Consul Service Discovery
      • 10.1.3. Remote DDT Dictionary
      • 10.1.4. Application Launch
    • 10.2. CcfGuiMainWindow – Main Window
      • 10.2.1. Initialization Sequence
      • 10.2.2. Determining the OLDB Prefix
      • 10.2.3. Dynamic Widget Composition
      • 10.2.4. Shared Facade Connections
      • 10.2.5. Global Error Handling
      • 10.2.6. Connection Monitoring
      • 10.2.7. State Machine Awareness
        • 10.2.7.1. OLDB Datapoint Setup
        • 10.2.7.2. Enable with State Check
        • 10.2.7.3. Other State Machine Commands
      • 10.2.8. Theming and Style Switching
    • 10.3. Summary of Key Patterns
  • 11. Creating a Custom Widget
    • 11.1. Prerequisites
    • 11.2. Step 1: Create the Widget UI
      • 11.2.1. Option A: Taurus Designer
      • 11.2.2. Option B: Pure Code Layout
    • 11.3. Step 2: Define the OLDB Paths Dataclass
    • 11.4. Step 3: Scaffold the Widget Class
    • 11.5. Step 4: Bind Taurus Labels
    • 11.6. Step 5: Handle Commands and Signals
    • 11.7. Step 6: Register in __init__.py
    • 11.8. Complete Example
    • 11.9. Using the Widget in a Panel
    • 11.10. Testing with a Minimal Main Window
IFW Widget Library
  • Search


© Copyright 2026 ESO - European Southern Observatory.