
    {h                     ~    d dl Z d dlmZ d dlmZ d dlmZ d dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZ  G d	 d
e      Zy)    N)on)App)Path)MainMenuScreen)FileExplorerScreen)AtomicToolExplorerScreen)Modec                        e Zd ZdZdZeeedZ fdZ	ddZ
deddfd	Zdd
Zd Zd ZddZd ZdeddfdZ eej*                        dej*                  ddfd       Z xZS )AtomicAssemblerz0The main application class for Atomic Assembler.z6
    Screen {
        align: center middle;
    }
    )	main_menuatomic_tool_explorerfile_explorerc                 2    t        |   |i | d | _        y )N)super__init__selected_path)selfargskwargs	__class__s      U/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/atomic_assembler/app.pyr   zAtomicAssembler.__init__   s    $)&)!    returnNc                 &    | j                  d       y)z#Handler called when app is mounted.r   N)push_screenr   s    r   on_mountzAtomicAssembler.on_mount    s    %r   actionc                     | j                   | j                  | j                  | j                  | j                  d}||v r ||   di | yt        j                  d| d       y)z$Handle all menu actions dynamically.)browse_filesbrowse_foldersdownload_toolsopen_githubexitzAction 'z' not implementedN )push_file_explorerpush_folder_explorerpush_atomic_tool_explorerr#   exit_apploggingwarning)r   r   r   
action_maps       r   handle_menu_actionz"AtomicAssembler.handle_menu_action$   sh     !33"77"<<++MM

 ZJv((OOhvh.?@Ar   c                 .    t        j                  d       y)z4Open the Atomic Agents GitHub page in a web browser.z.https://github.com/BrainBlend-AI/atomic-agentsN)
webbrowseropenr   s    r   r#   zAtomicAssembler.open_github3   s    HIr   c                 l    | j                  t        t        j                  | j                               y)z+Push the file explorer screen in file mode.modecallbackN)r   r   r	   	FILE_MODEhandle_selectionr   r   s     r   r&   z"AtomicAssembler.push_file_explorer7   s(    ^^..	
r   c                 l    | j                  t        t        j                  | j                               y)z0Push the file explorer screen in directory mode.r2   N)r   r   r	   DIRECTORY_MODEr6   r7   s     r   r'   z$AtomicAssembler.push_folder_explorer@   s*    ((..	
r   c                 6    | j                  t                      y)z%Push the Atomic Tool Explorer screen.N)r   r   r7   s     r   r(   z)AtomicAssembler.push_atomic_tool_explorerI   s    134r   c                 $    | j                          y)zExit the application.N)r$   r7   s     r   r)   zAtomicAssembler.exit_appM   s    		r   r   c                 B    t        j                  d|        || _        y)z)Handle the selection of a file or folder.z%File or folder selected in main app: N)r*   debugr   )r   r   s     r   r6   z AtomicAssembler.handle_selectionQ   s    =m_MN*r   messagec                 j    t        j                  d|j                          |j                  | _        y)zHandle the file selected event.zFile selected in main app: N)r*   r=   pathr   )r   r>   s     r   handle_file_selectedz$AtomicAssembler.handle_file_selectedV   s(     	3GLL>BC$\\r   )r   N)__name__
__module____qualname____doc__CSSr   r   r   SCREENSr   r   strr-   r#   r&   r'   r(   r)   r   r6   r   FileSelectedrA   __classcell__)r   s   @r   r   r      s    :C $ 8+G"&B B4 BJ

5+d +t +
 ''(*,>,K,K *PT * )*r   r   )r*   textualr   textual.appr   pathlibr   r/   "atomic_assembler.screens.main_menur   &atomic_assembler.screens.file_explorerr   -atomic_assembler.screens.atomic_tool_explorerr   atomic_assembler.constantsr	   r   r%   r   r   <module>rR      s.         = E R +M*c M*r   