comparison android/DWindows.kt @ 2798:a3d62de81ec0

Android: Changes to highlight the selected node of the tree widget.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sat, 16 Jul 2022 21:46:35 +0000
parents 62837ceeec46
children fd7c6ff72383
comparison
equal deleted inserted replaced
2797:62837ceeec46 2798:a3d62de81ec0
430 treeItemView.expandCollapseView.setImageResource(R.drawable.ic_menu_more) 430 treeItemView.expandCollapseView.setImageResource(R.drawable.ic_menu_more)
431 } else { 431 } else {
432 treeItemView.expandCollapseView.setImageResource(R.drawable.ic_menu_add) 432 treeItemView.expandCollapseView.setImageResource(R.drawable.ic_menu_add)
433 } 433 }
434 } 434 }
435 treeItemView.isChecked = node.isSelected()
435 } 436 }
436 } 437 }
437 438
438 interface DWTreeViewHolderFactory { 439 interface DWTreeViewHolderFactory {
439 // Provide a TreeViewHolder class depend on the current view 440 // Provide a TreeViewHolder class depend on the current view
459 private val treeViewHolderFactory: DWTreeViewHolderFactory 460 private val treeViewHolderFactory: DWTreeViewHolderFactory
460 461
461 // The current selected Tree Item 462 // The current selected Tree Item
462 private var currentSelectedItem: DWTreeItem? = null 463 private var currentSelectedItem: DWTreeItem? = null
463 464
465 // The current selected Tree Item
466 private var currentSelectedItemView: DWTreeItemView? = null
467
464 // Custom OnClickListener to be invoked when a DWTreeItem has been clicked. 468 // Custom OnClickListener to be invoked when a DWTreeItem has been clicked.
465 private var treeItemClickListener: ((DWTreeItem?, View?) -> Boolean)? = null 469 private var treeItemClickListener: ((DWTreeItem?, View?) -> Boolean)? = null
466 470
467 // Custom OnLongClickListener to be invoked when a DWTreeItem has been clicked and hold. 471 // Custom OnLongClickListener to be invoked when a DWTreeItem has been clicked and hold.
468 private var treeItemLongClickListener: ((DWTreeItem?, View?) -> Boolean)? = null 472 private var treeItemLongClickListener: ((DWTreeItem?, View?) -> Boolean)? = null
494 val currentNode: DWTreeItem = treeItemManager.get(position) 498 val currentNode: DWTreeItem = treeItemManager.get(position)
495 holder.bindTreeItem(currentNode) 499 holder.bindTreeItem(currentNode)
496 holder.itemView.setOnClickListener { v -> 500 holder.itemView.setOnClickListener { v ->
497 // Handle node selection 501 // Handle node selection
498 currentNode.setSelected(true) 502 currentNode.setSelected(true)
503 val treeItemView = holder.itemView as DWTreeItemView
504 treeItemView.isChecked = true
499 currentSelectedItem?.setSelected(false) 505 currentSelectedItem?.setSelected(false)
506 currentSelectedItemView?.isChecked = false
500 currentSelectedItem = currentNode 507 currentSelectedItem = currentNode
508 currentSelectedItemView = treeItemView
501 509
502 // Handle node expand and collapse event 510 // Handle node expand and collapse event
503 if (!currentNode.getChildren().isEmpty()) { 511 if (!currentNode.getChildren().isEmpty()) {
504 val isNodeExpanded: Boolean = currentNode.isExpanded() 512 val isNodeExpanded: Boolean = currentNode.isExpanded()
505 if (isNodeExpanded) collapseNode(currentNode) else expandNode(currentNode) 513 if (isNodeExpanded) collapseNode(currentNode) else expandNode(currentNode)