1/* 2* Copyright (C) 2023-2023 Huawei Device Co., Ltd. 3* Licensed under the Apache License, Version 2.0 (the "License"); 4* you may not use this file except in compliance with the License. 5* You may obtain a copy of the License at 6* 7* http://www.apache.org/licenses/LICENSE-2.0 8* 9* Unless required by applicable law or agreed to in writing, software 10* distributed under the License is distributed on an "AS IS" BASIS, 11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12* See the License for the specific language governing permissions and 13* limitations under the License. 14*/ 15 16/** 17 * @file 18 * @kit ArkUI 19 */ 20 21 22 23 24 25/** 26 * Control style of operation element 27 * @enum { TreeListenType } 28 * @syscap SystemCapability.ArkUI.ArkUI.Full 29 * @since 10 30 */ 31 32 33/** 34 * Control style of operation element 35 * @enum { TreeListenType } 36 * @syscap SystemCapability.ArkUI.ArkUI.Full 37 * @atomicservice 38 * @since 11 39 */ 40export declare enum TreeListenType { 41 /** 42 * register listener after a node is clicked. 43 * @syscap SystemCapability.ArkUI.ArkUI.Full 44 * @since 10 45 */ 46 /** 47 * register listener after a node is clicked. 48 * @syscap SystemCapability.ArkUI.ArkUI.Full 49 * @atomicservice 50 * @since 11 51 */ 52 NODE_CLICK = "NodeClick", 53 /** 54 * register listener after a node is add. 55 * @syscap SystemCapability.ArkUI.ArkUI.Full 56 * @since 10 57 */ 58 /** 59 * register listener after a node is add. 60 * @syscap SystemCapability.ArkUI.ArkUI.Full 61 * @atomicservice 62 * @since 11 63 */ 64 NODE_ADD = "NodeAdd", 65 /** 66 * register listener after a node is delected. 67 * @syscap SystemCapability.ArkUI.ArkUI.Full 68 * @since 10 69 */ 70 /** 71 * register listener after a node is delected. 72 * @syscap SystemCapability.ArkUI.ArkUI.Full 73 * @atomicservice 74 * @since 11 75 */ 76 NODE_DELETE = "NodeDelete", 77 /** 78 * register listener after a node is modified. 79 * @syscap SystemCapability.ArkUI.ArkUI.Full 80 * @since 10 81 */ 82 /** 83 * register listener after a node is modified. 84 * @syscap SystemCapability.ArkUI.ArkUI.Full 85 * @atomicservice 86 * @since 11 87 */ 88 NODE_MODIFY = "NodeModify", 89 /** 90 * register listener after a node is moved. 91 * @syscap SystemCapability.ArkUI.ArkUI.Full 92 * @since 10 93 */ 94 /** 95 * register listener after a node is moved. 96 * @syscap SystemCapability.ArkUI.ArkUI.Full 97 * @atomicservice 98 * @since 11 99 */ 100 NODE_MOVE = "NodeMove", 101} 102 103/** 104 * Declare class TreeListener 105 * @syscap SystemCapability.ArkUI.ArkUI.Full 106 * @since 10 107 */ 108/** 109 * Declare class TreeListener 110 * @syscap SystemCapability.ArkUI.ArkUI.Full 111 * @atomicservice 112 * @since 11 113 */ 114export declare class TreeListener { 115 /** 116 * Event registration and processing. 117 * The event will not be destroyed after being processed. 118 * 119 * @param { type } event Registered Events. 120 * @param { callback }. 121 * @syscap SystemCapability.ArkUI.ArkUI.Full 122 * @since 10 123 */ 124 /** 125 * Event registration and processing. 126 * The event will not be destroyed after being processed. 127 * 128 * @param { type } event Registered Events. 129 * @param { callback }. 130 * @syscap SystemCapability.ArkUI.ArkUI.Full 131 * @atomicservice 132 * @since 11 133 */ 134 on(type: TreeListenType, callback: (callbackParam: CallbackParam) => void): void; 135 136 /** 137 * Event registration and processing. 138 * After the event is processed once, it will be destroyed. 139 * 140 * @param { type } event Registered Events. 141 * @param { callback }. 142 * @syscap SystemCapability.ArkUI.ArkUI.Full 143 * @since 10 144 */ 145 /** 146 * Event registration and processing. 147 * After the event is processed once, it will be destroyed. 148 * 149 * @param { type } event Registered Events. 150 * @param { callback }. 151 * @syscap SystemCapability.ArkUI.ArkUI.Full 152 * @atomicservice 153 * @since 11 154 */ 155 once(type: TreeListenType, callback: (callbackParam: CallbackParam) => void): void; 156 157 /** 158 * Destroy event. 159 * 160 * @param { type } event Registered Events. 161 * @param { callback }. 162 * @syscap SystemCapability.ArkUI.ArkUI.Full 163 * @since 10 164 */ 165 /** 166 * Destroy event. 167 * 168 * @param { type } event Registered Events. 169 * @param { callback }. 170 * @syscap SystemCapability.ArkUI.ArkUI.Full 171 * @atomicservice 172 * @since 11 173 */ 174 off(type: TreeListenType, callback?: (callbackParam: CallbackParam) => void): void; 175} 176 177/** 178 * Declare class TreeListenerManager 179 * @syscap SystemCapability.ArkUI.ArkUI.Full 180 * @since 10 181 */ 182/** 183 * Declare class TreeListenerManager 184 * @syscap SystemCapability.ArkUI.ArkUI.Full 185 * @atomicservice 186 * @since 11 187 */ 188export declare class TreeListenerManager { 189 /** 190 * Get instance of treeListenerManager. 191 * @return treeListenerManager instance 192 * @static 193 * @syscap SystemCapability.ArkUI.ArkUI.Full 194 * @since 10 195 */ 196 /** 197 * Get instance of treeListenerManager. 198 * @return treeListenerManager instance 199 * @static 200 * @syscap SystemCapability.ArkUI.ArkUI.Full 201 * @atomicservice 202 * @since 11 203 */ 204 static getInstance(): TreeListenerManager; 205 206 /** 207 * Get treeListener. 208 * @return treeListener object 209 * @syscap SystemCapability.ArkUI.ArkUI.Full 210 * @since 10 211 */ 212 /** 213 * Get treeListener. 214 * @return treeListener object 215 * @syscap SystemCapability.ArkUI.ArkUI.Full 216 * @atomicservice 217 * @since 11 218 */ 219 getTreeListener(): TreeListener; 220} 221 222/** 223 * Declare TreeView Component 224 * @syscap SystemCapability.ArkUI.ArkUI.Full 225 * @since 10 226 */ 227/** 228 * Declare TreeView Component 229 * @syscap SystemCapability.ArkUI.ArkUI.Full 230 * @atomicservice 231 * @since 11 232 */ 233@Component 234export declare struct TreeView { 235 /** 236 * Node data source of TreeView. 237 * @type TreeController 238 * @syscap SystemCapability.ArkUI.ArkUI.Full 239 * @since 10 240 */ 241 /** 242 * Node data source of TreeView. 243 * @type TreeController 244 * @syscap SystemCapability.ArkUI.ArkUI.Full 245 * @atomicservice 246 * @since 11 247 */ 248 treeController: TreeController; 249} 250 251/** 252 * Declare CallbackParam 253 * @typedef CallbackParam 254 * @syscap SystemCapability.ArkUI.ArkUI.Full 255 * @since 10 256 */ 257/** 258 * Declare CallbackParam 259 * @typedef CallbackParam 260 * @syscap SystemCapability.ArkUI.ArkUI.Full 261 * @atomicservice 262 * @since 11 263 */ 264export interface CallbackParam { 265 /** 266 * Get the currentNodeId. 267 * @type { number } 268 * @syscap SystemCapability.ArkUI.ArkUI.Full 269 * @since 10 270 */ 271 /** 272 * Get the currentNodeId. 273 * @type { number } 274 * @syscap SystemCapability.ArkUI.ArkUI.Full 275 * @atomicservice 276 * @since 11 277 */ 278 currentNodeId: number, 279 280 /** 281 * Get the parentNodeId. 282 * @type { number } 283 * @syscap SystemCapability.ArkUI.ArkUI.Full 284 * @since 10 285 */ 286 /** 287 * Get the parentNodeId. 288 * @type { number } 289 * @syscap SystemCapability.ArkUI.ArkUI.Full 290 * @atomicservice 291 * @since 11 292 */ 293 parentNodeId?: number, 294 295 /** 296 * Get the childIndex. 297 * @type { number } 298 * @syscap SystemCapability.ArkUI.ArkUI.Full 299 * @since 10 300 */ 301 /** 302 * Get the childIndex. 303 * @type { number } 304 * @syscap SystemCapability.ArkUI.ArkUI.Full 305 * @atomicservice 306 * @since 11 307 */ 308 childIndex?: number 309} 310 311/** 312 * Declare NodeParam 313 * @typedef NodeParam 314 * @syscap SystemCapability.ArkUI.ArkUI.Full 315 * @since 10 316 */ 317/** 318 * Declare NodeParam 319 * @typedef NodeParam 320 * @syscap SystemCapability.ArkUI.ArkUI.Full 321 * @atomicservice 322 * @since 11 323 */ 324export interface NodeParam { 325 /** 326 * Set the parentNodeId. 327 * @type { number } 328 * @syscap SystemCapability.ArkUI.ArkUI.Full 329 * @since 10 330 */ 331 /** 332 * Set the parentNodeId. 333 * @type { number } 334 * @syscap SystemCapability.ArkUI.ArkUI.Full 335 * @atomicservice 336 * @since 11 337 */ 338 parentNodeId?: number, 339 340 /** 341 * Set currentNodeId. 342 * @type { number } 343 * @syscap SystemCapability.ArkUI.ArkUI.Full 344 * @since 10 345 */ 346 /** 347 * Set currentNodeId. 348 * @type { number } 349 * @syscap SystemCapability.ArkUI.ArkUI.Full 350 * @atomicservice 351 * @since 11 352 */ 353 currentNodeId?: number, 354 355 /** 356 * Set catalog whether is floder. 357 * @type { boolean } 358 * @syscap SystemCapability.ArkUI.ArkUI.Full 359 * @since 10 360 */ 361 /** 362 * Set catalog whether is floder. 363 * @type { boolean } 364 * @syscap SystemCapability.ArkUI.ArkUI.Full 365 * @atomicservice 366 * @since 11 367 */ 368 isFolder?: boolean; 369 370 /** 371 * Set the icon resource. 372 * @type { Resource } 373 * @syscap SystemCapability.ArkUI.ArkUI.Full 374 * @since 10 375 */ 376 /** 377 * Set the icon resource. 378 * @type { Resource } 379 * @syscap SystemCapability.ArkUI.ArkUI.Full 380 * @atomicservice 381 * @since 11 382 */ 383 icon?: ResourceStr; 384 385 /** 386 * Set the symbol resource. 387 * @type { ?SymbolGlyphModifier } 388 * @syscap SystemCapability.ArkUI.ArkUI.Full 389 * @atomicservice 390 * @since 18 391 */ 392 symbolIconStyle?: SymbolGlyphModifier; 393 394 /** 395 * Set selected icon resource. 396 * @type { Resource } 397 * @syscap SystemCapability.ArkUI.ArkUI.Full 398 * @since 10 399 */ 400 /** 401 * Set selected icon resource. 402 * @type { Resource } 403 * @syscap SystemCapability.ArkUI.ArkUI.Full 404 * @atomicservice 405 * @since 11 406 */ 407 selectedIcon?: ResourceStr; 408 409 /** 410 * Set selected symbol resource. 411 * @type { ?SymbolGlyphModifier } 412 * @syscap SystemCapability.ArkUI.ArkUI.Full 413 * @atomicservice 414 * @since 18 415 */ 416 symbolSelectedIconStyle?: SymbolGlyphModifier; 417 418 /** 419 * Set edit icon resource. 420 * @type { Resource } 421 * @syscap SystemCapability.ArkUI.ArkUI.Full 422 * @since 10 423 */ 424 /** 425 * Set edit icon resource. 426 * @type { Resource } 427 * @syscap SystemCapability.ArkUI.ArkUI.Full 428 * @atomicservice 429 * @since 11 430 */ 431 editIcon?: ResourceStr; 432 433 /** 434 * Set edit symbol resource. 435 * @type { ?SymbolGlyphModifier } 436 * @syscap SystemCapability.ArkUI.ArkUI.Full 437 * @atomicservice 438 * @since 18 439 */ 440 symbolEditIconStyle?: SymbolGlyphModifier; 441 442 /** 443 * Set primary title content. 444 * @type { ResourceStr } 445 * @syscap SystemCapability.ArkUI.ArkUI.Full 446 * @since 10 447 */ 448 /** 449 * Set primary title content. 450 * @type { ResourceStr } 451 * @syscap SystemCapability.ArkUI.ArkUI.Full 452 * @atomicservice 453 * @since 11 454 */ 455 primaryTitle?: ResourceStr; 456 457 /** 458 * Set secondary title content. 459 * @type { ResourceStr } 460 * @syscap SystemCapability.ArkUI.ArkUI.Full 461 * @since 10 462 */ 463 /** 464 * Set secondary title content. 465 * @type { ResourceStr } 466 * @syscap SystemCapability.ArkUI.ArkUI.Full 467 * @atomicservice 468 * @since 11 469 */ 470 secondaryTitle?: ResourceStr; 471 472 /** 473 * set subcomponent binded on tree item. 474 * @type { () => void } 475 * @syscap SystemCapability.ArkUI.ArkUI.Full 476 * @since 10 477 */ 478 /** 479 * set subcomponent binded on tree item. 480 * @type { () => void } 481 * @syscap SystemCapability.ArkUI.ArkUI.Full 482 * @atomicservice 483 * @since 11 484 */ 485 container?: () => void; 486} 487 488/** 489 * Declare TreeController 490 * @syscap SystemCapability.ArkUI.ArkUI.Full 491 * @since 10 492 */ 493/** 494 * Declare TreeController 495 * @syscap SystemCapability.ArkUI.ArkUI.Full 496 * @atomicservice 497 * @since 11 498 */ 499export declare class TreeController { 500 /** 501 * Delete a node. 502 * Register an ON_ITEM_DELETE callback through the ListTreeListener mechanism to obtain the IDs of all deleted nodes. 503 * @syscap SystemCapability.ArkUI.ArkUI.Full 504 * @since 10 505 */ 506 /** 507 * Delete a node. 508 * Register an ON_ITEM_DELETE callback through the ListTreeListener mechanism to obtain the IDs of all deleted nodes. 509 * @syscap SystemCapability.ArkUI.ArkUI.Full 510 * @atomicservice 511 * @since 11 512 */ 513 removeNode(): void; 514 515 /** 516 * Modify the node name. 517 * Register an ON_ITEM_MODIFY callback to obtain the ID, parent node ID, and node name of the modified node. 518 * @syscap SystemCapability.ArkUI.ArkUI.Full 519 * @since 10 520 */ 521 /** 522 * Modify the node name. 523 * Register an ON_ITEM_MODIFY callback to obtain the ID, parent node ID, and node name of the modified node. 524 * @syscap SystemCapability.ArkUI.ArkUI.Full 525 * @atomicservice 526 * @since 11 527 */ 528 modifyNode(): void; 529 530 /** 531 * Initialize the interface of the tree view. This interface is used to generate ListNodeDataSource data. 532 * addNode is only designed for initialization. It can only be invoked during initialization. 533 * 534 * A maximum of 50 directory levels can be added. 535 * 536 * @param nodeParam Configuration information of the newly added node. 537 * 538 * For details, see the comment description of NodeParam. 539 * @return ListTreeNode Tree view component proxy class. 540 * @syscap SystemCapability.ArkUI.ArkUI.Full 541 * @since 10 542 */ 543 /** 544 * Initialize the interface of the tree view. This interface is used to generate ListNodeDataSource data. 545 * addNode is only designed for initialization. It can only be invoked during initialization. 546 * 547 * A maximum of 50 directory levels can be added. 548 * 549 * @param nodeParam Configuration information of the newly added node. 550 * 551 * For details, see the comment description of NodeParam. 552 * @return ListTreeNode Tree view component proxy class. 553 * @syscap SystemCapability.ArkUI.ArkUI.Full 554 * @atomicservice 555 * @since 11 556 */ 557 addNode(nodeParam?: NodeParam): TreeController; 558 559 /** 560 * This interface is called when a secondaryTitle needs to be updated 561 * 562 * @param parentId ID of the parent node. 563 * @param parentSubTitle secondaryTitle of parent node. 564 * @param currentSubtitle secondaryTitle of current node. 565 * 566 * @syscap SystemCapability.ArkUI.ArkUI.Full 567 * @since 10 568 */ 569 /** 570 * This interface is called when a secondaryTitle needs to be updated 571 * 572 * @param parentId ID of the parent node. 573 * @param parentSubTitle secondaryTitle of parent node. 574 * @param currentSubtitle secondaryTitle of current node. 575 * 576 * @syscap SystemCapability.ArkUI.ArkUI.Full 577 * @atomicservice 578 * @since 11 579 */ 580 refreshNode(parentId: number, parentSubTitle: ResourceStr, currentSubtitle: ResourceStr): void; 581 582 /** 583 * After the initialization is complete by calling the addNode interface, 584 * call this interface to complete initialization. 585 * 586 * This interface must be called when you finish initializing the ListTreeView by addNode. 587 * @syscap SystemCapability.ArkUI.ArkUI.Full 588 * @since 10 589 */ 590 /** 591 * After the initialization is complete by calling the addNode interface, 592 * call this interface to complete initialization. 593 * 594 * This interface must be called when you finish initializing the ListTreeView by addNode. 595 * @syscap SystemCapability.ArkUI.ArkUI.Full 596 * @atomicservice 597 * @since 11 598 */ 599 buildDone(): void; 600}