annotation_gui_gcp/lib/views/tools_view.py (31 lines of code) (raw):

from typing import Dict, Any from annotation_gui_gcp.lib.views.web_view import WebView class ToolsView(WebView): def __init__(self, main_ui, web_app): super().__init__(main_ui, web_app, "/tools") self.main_ui = main_ui def process_client_message(self, data: Dict[str, Any]) -> None: # Got some input from the frontend if data["event"] == "select_cp": self.main_ui.update_active_gcp(data["point_id"]) elif data["event"] == "delCP": self.main_ui.remove_gcp() elif data["event"] == "addCP": self.main_ui.add_gcp() elif data["event"] == "save": self.main_ui.save_gcps() elif data["event"] == "load": self.main_ui.load_gcps() elif data["event"] == "flex": self.main_ui.analyze_flex() elif data["event"] == "rigid": self.main_ui.analyze_rigid() elif data["event"] == "full": self.main_ui.analyze() else: raise ValueError(f"Unknown event {data['event']}") def sync_to_client(self): # Sync state to frontend """ Sends all the data required to initialize or sync the tools view """ data = { "points": self.main_ui.gcp_manager.points_to_json(), "selected_point": self.main_ui.curr_point, } self.send_sse_message(data)