# TODO Lot of hardcoded shizzle import sys from typing import List import arklog import dearpygui.dearpygui as dpg from graph_exploring_tool.configuration import Configuration from graph_exploring_tool.graphical.constants import PRIMARY_WINDOW_TAG, MAIN_QUERY_GROUP_TAG, MAIN_DIAGRAM_GROUP_TAG from graph_exploring_tool.graphical.diagram_group import create_diagram_group from graph_exploring_tool.graphical.query_group import create_query_group from graph_exploring_tool.query import QueryTemplate arklog.set_config_logging() def switch_main_view(view: str): """Switch the current view to one of the options. This hides all but on group.""" dpg.configure_item(MAIN_QUERY_GROUP_TAG, show=view == MAIN_QUERY_GROUP_TAG) dpg.configure_item(MAIN_DIAGRAM_GROUP_TAG, show=view == MAIN_DIAGRAM_GROUP_TAG) def add_main_menu() -> None: """Create the main menu for the application interface.""" with dpg.menu_bar(): with dpg.menu(label="Menu"): dpg.add_menu_item(label="Exit", callback=lambda _: sys.exit()) with dpg.menu(label="View"): with dpg.menu(label="Switch main view"): dpg.add_menu_item(label="Query Explorer", callback=lambda _: switch_main_view(MAIN_QUERY_GROUP_TAG)) dpg.add_menu_item(label="Diagram Explorer", callback=lambda _: switch_main_view(MAIN_DIAGRAM_GROUP_TAG)) def interface(configuration: Configuration, palette: List[QueryTemplate], width=1200, height=900): """Show the initial state of the full user interface.""" dpg.create_context() dpg.create_viewport(title="Graph Exploring Tool", width=width, height=height) with dpg.window(tag=PRIMARY_WINDOW_TAG, label="Graph Exploring Tool", menubar=True): add_main_menu() create_query_group(configuration, palette) create_diagram_group() # from dearpygui import demo # demo.show_demo() dpg.setup_dearpygui() dpg.show_viewport() dpg.set_primary_window(PRIMARY_WINDOW_TAG, True) dpg.start_dearpygui() dpg.destroy_context()