76 lines
2.9 KiB
Plaintext
76 lines
2.9 KiB
Plaintext
import { TreeController, TreeListener, TreeListenerManager, TreeListenType, NodeParam, TreeView, CallbackParam,
|
|
SymbolGlyphModifier} from '@kit.ArkUI';
|
|
|
|
//@ComponentV2
|
|
|
|
@Entry
|
|
@ComponentV2
|
|
export struct LeftSideComponent {
|
|
private treeController: TreeController = new TreeController();
|
|
private treeListener: TreeListener = TreeListenerManager.getInstance().getTreeListener();
|
|
@Local clickNodeId: number = 0;
|
|
|
|
aboutToDisappear(): void {
|
|
this.treeListener.off(TreeListenType.NODE_CLICK, undefined);
|
|
this.treeListener.off(TreeListenType.NODE_ADD, undefined);
|
|
this.treeListener.off(TreeListenType.NODE_DELETE, undefined);
|
|
this.treeListener.off(TreeListenType.NODE_MOVE, undefined);
|
|
}
|
|
|
|
@Builder menuBuilder1() {
|
|
Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
|
|
Text('新增').fontSize(16).width(100).height(30).textAlign(TextAlign.Center)
|
|
.onClick((event: ClickEvent) => {
|
|
this.treeController.addNode();
|
|
})
|
|
Divider()
|
|
Text('删除').fontSize(16).width(100).height(30).textAlign(TextAlign.Center)
|
|
.onClick((event: ClickEvent) => {
|
|
this.treeController.removeNode();
|
|
})
|
|
Divider()
|
|
Text('重命名').fontSize(16).width(100).height(30).textAlign(TextAlign.Center)
|
|
.onClick((event: ClickEvent) => {
|
|
this.treeController.modifyNode();
|
|
})
|
|
}.width(100).border({width: 1, color: 0x80808a, radius: '16dp'})
|
|
}
|
|
|
|
aboutToAppear(): void {
|
|
this.treeListener.on(TreeListenType.NODE_CLICK, (callbackParam: CallbackParam) => {
|
|
this.clickNodeId = callbackParam.currentNodeId;
|
|
})
|
|
this.treeListener.on(TreeListenType.NODE_ADD, (callbackParam: CallbackParam) => {
|
|
this.clickNodeId = callbackParam.currentNodeId;
|
|
})
|
|
this.treeListener.on(TreeListenType.NODE_DELETE, (callbackParam: CallbackParam) => {
|
|
this.clickNodeId = callbackParam.currentNodeId;
|
|
})
|
|
this.treeListener.once(TreeListenType.NODE_MOVE, (callbackParam: CallbackParam) => {
|
|
this.clickNodeId = callbackParam.currentNodeId;
|
|
})
|
|
|
|
let normalResource: Resource = $r('sys.symbol.house');
|
|
let selectedResource: Resource = $r('sys.symbol.car');
|
|
let editResource: Resource = $r('sys.symbol.calendar');
|
|
let nodeParam: NodeParam = { parentNodeId:-1, currentNodeId: 1, isFolder: true, icon: normalResource, selectedIcon: selectedResource,
|
|
editIcon: editResource, primaryTitle: "部件历史记录",
|
|
secondaryTitle: "0" };
|
|
this.treeController
|
|
.addNode(nodeParam)
|
|
.buildDone();
|
|
this.treeController.refreshNode(-1, "父节点", "子节点");
|
|
}
|
|
|
|
build() {
|
|
Column(){
|
|
SideBarContainer(SideBarContainerType.Embed)
|
|
{
|
|
TreeView({ treeController: this.treeController })
|
|
.bindMenu(this.menuBuilder1)
|
|
}
|
|
.focusable(true)
|
|
.showControlButton(false)
|
|
.showSideBar(true)
|
|
}
|
|
}} |