"""Editor context adapter for legacy bridge access.""" class EditorContext: """Provide a stable access layer for editor-facing services.""" def __init__(self, world): self.world = world def get_interface_manager(self): return getattr(self.world, "interface_manager", None) def get_tree_widget(self): interface_manager = self.get_interface_manager() if not interface_manager: return None return getattr(interface_manager, "treeWidget", None) def get_gui_manager(self): return getattr(self.world, "gui_manager", None) def ensure_gui_elements(self): gui_manager = self.get_gui_manager() if gui_manager is not None: gui_elements = getattr(gui_manager, "gui_elements", None) if gui_elements is None: gui_elements = [] setattr(gui_manager, "gui_elements", gui_elements) return gui_elements gui_elements = getattr(self.world, "gui_elements", None) if gui_elements is None: gui_elements = [] setattr(self.world, "gui_elements", gui_elements) return gui_elements def append_gui_element(self, element): gui_elements = self.ensure_gui_elements() gui_elements.append(element) return True def get_editor_context(owner): """Get or create editor context from a world/owner object.""" world = getattr(owner, "world", owner) context = getattr(world, "_editor_context", None) if context is None or getattr(context, "world", None) is not world: context = EditorContext(world) setattr(world, "_editor_context", context) return context