Mountain/Environment/TreeViewProvider/
mod.rs1use CommonLibrary::TreeView::TreeViewProvider::TreeViewProvider;
28use async_trait::async_trait;
29
30mod Registration;
32mod DataAccess;
33mod UIState;
34mod Events;
35mod StatePersistence;
36mod Visibility;
37
38#[async_trait]
39impl TreeViewProvider for crate::Environment::MountainEnvironment::MountainEnvironment {
40 async fn RegisterTreeDataProvider(
41 &self,
42 view_identifier:String,
43 options:serde_json::Value,
44 ) -> Result<(), CommonLibrary::Error::CommonError::CommonError> {
45 Registration::register_tree_data_provider(self, view_identifier, options).await
46 }
47
48 async fn UnregisterTreeDataProvider(
49 &self,
50 view_identifier:String,
51 ) -> Result<(), CommonLibrary::Error::CommonError::CommonError> {
52 Registration::unregister_tree_data_provider(self, view_identifier).await
53 }
54
55 async fn GetChildren(
56 &self,
57 view_identifier:String,
58 element_handle:Option<String>,
59 ) -> Result<Vec<serde_json::Value>, CommonLibrary::Error::CommonError::CommonError> {
60 DataAccess::get_children(self, view_identifier, element_handle).await
61 }
62
63 async fn GetTreeItem(
64 &self,
65 view_identifier:String,
66 element_handle:String,
67 ) -> Result<serde_json::Value, CommonLibrary::Error::CommonError::CommonError> {
68 DataAccess::get_tree_item(self, view_identifier, element_handle).await
69 }
70
71 async fn SetTreeViewMessage(
72 &self,
73 view_identifier:String,
74 message:Option<String>,
75 ) -> Result<(), CommonLibrary::Error::CommonError::CommonError> {
76 UIState::set_tree_view_message(self, view_identifier, message).await
77 }
78
79 async fn SetTreeViewTitle(
80 &self,
81 view_identifier:String,
82 title:Option<String>,
83 description:Option<String>,
84 ) -> Result<(), CommonLibrary::Error::CommonError::CommonError> {
85 UIState::set_tree_view_title(self, view_identifier, title, description).await
86 }
87
88 async fn SetTreeViewBadge(
89 &self,
90 view_identifier:String,
91 badge:Option<serde_json::Value>,
92 ) -> Result<(), CommonLibrary::Error::CommonError::CommonError> {
93 UIState::set_tree_view_badge(self, view_identifier, badge).await
94 }
95
96 async fn OnTreeNodeExpanded(
97 &self,
98 view_identifier:String,
99 element_handle:String,
100 is_expanded:bool,
101 ) -> Result<(), CommonLibrary::Error::CommonError::CommonError> {
102 Events::on_tree_node_expanded(self, view_identifier, element_handle, is_expanded).await
103 }
104
105 async fn OnTreeSelectionChanged(
106 &self,
107 view_identifier:String,
108 selected_handles:Vec<String>,
109 ) -> Result<(), CommonLibrary::Error::CommonError::CommonError> {
110 Events::on_tree_selection_changed(self, view_identifier, selected_handles).await
111 }
112
113 async fn PersistTreeViewState(
114 &self,
115 view_identifier:String,
116 ) -> Result<serde_json::Value, CommonLibrary::Error::CommonError::CommonError> {
117 StatePersistence::persist_tree_view_state(self, view_identifier).await
118 }
119
120 async fn RestoreTreeViewState(
121 &self,
122 view_identifier:String,
123 state_value:serde_json::Value,
124 ) -> Result<(), CommonLibrary::Error::CommonError::CommonError> {
125 StatePersistence::restore_tree_view_state(self, view_identifier, state_value).await
126 }
127
128 async fn RevealTreeItem(
129 &self,
130 view_identifier:String,
131 item_handle:String,
132 options:serde_json::Value,
133 ) -> Result<(), CommonLibrary::Error::CommonError::CommonError> {
134 Visibility::reveal_tree_item(self, view_identifier, item_handle, options).await
135 }
136
137 async fn RefreshTreeView(
138 &self,
139 view_identifier:String,
140 items_to_refresh:Option<serde_json::Value>,
141 ) -> Result<(), CommonLibrary::Error::CommonError::CommonError> {
142 Visibility::refresh_tree_view(self, view_identifier, items_to_refresh).await
143 }
144}