Mercurial > dwindows
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) |