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