@startuml images/morpho_search_seq.png participant "Query Input Dialog" as query_dialog <> participant "Query Plugin" as query_class <> participant "Remote Repository Plugin" as repository_plugin <> participant "Dataone Java Client Library" as dataone_client <> participant "Coordinating Node" as c_node <> query_dialog -> query_class: build query string query_class -> repository_plugin: query(String query) repository_plugin -> dataone_client:search() dataone_client -> c_node: search() alt exceptions query_class <- c_node: exceptions else success repository_plugin <- c_node: objectList query_class <- repository_plugin: Resultset resultSet query_class <- query_class: build result panel end @enduml