Mercurial > dwindows
comparison android/DWindows.kt @ 2799:fd7c6ff72383
Android: Separate handling of expand/collapse when touched on the expandCollpaseView.
Touching anywhere else on the row will select the node.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 17 Jul 2022 00:26:33 +0000 |
parents | a3d62de81ec0 |
children | 708bcef0ce6b |
comparison
equal
deleted
inserted
replaced
2798:a3d62de81ec0 | 2799:fd7c6ff72383 |
---|---|
495 } | 495 } |
496 | 496 |
497 override fun onBindViewHolder(holder: DWTreeViewHolder, position: Int) { | 497 override fun onBindViewHolder(holder: DWTreeViewHolder, position: Int) { |
498 val currentNode: DWTreeItem = treeItemManager.get(position) | 498 val currentNode: DWTreeItem = treeItemManager.get(position) |
499 holder.bindTreeItem(currentNode) | 499 holder.bindTreeItem(currentNode) |
500 val treeItemView = holder.itemView as DWTreeItemView | |
501 | |
502 // Handle touch on the expand/collapse image | |
503 treeItemView.expandCollapseView.setOnClickListener { v -> | |
504 // Handle node expand and collapse event | |
505 if (!currentNode.getChildren().isEmpty()) { | |
506 val isNodeExpanded: Boolean = currentNode.isExpanded() | |
507 if (isNodeExpanded) collapseNode(currentNode) else expandNode(currentNode) | |
508 currentNode.setExpanded(!isNodeExpanded) | |
509 | |
510 notifyDataSetChanged() | |
511 | |
512 // Handle DWTreeItem expand listener event | |
513 if (!isNodeExpanded && treeItemExpandListener != null) treeItemExpandListener!!( | |
514 currentNode, | |
515 v | |
516 ) | |
517 } | |
518 } | |
519 // Handle node selection | |
500 holder.itemView.setOnClickListener { v -> | 520 holder.itemView.setOnClickListener { v -> |
501 // Handle node selection | 521 // If touched anywhere else, change the selection |
502 currentNode.setSelected(true) | 522 currentNode.setSelected(true) |
503 val treeItemView = holder.itemView as DWTreeItemView | |
504 treeItemView.isChecked = true | 523 treeItemView.isChecked = true |
505 currentSelectedItem?.setSelected(false) | 524 currentSelectedItem?.setSelected(false) |
506 currentSelectedItemView?.isChecked = false | 525 currentSelectedItemView?.isChecked = false |
507 currentSelectedItem = currentNode | 526 currentSelectedItem = currentNode |
508 currentSelectedItemView = treeItemView | 527 currentSelectedItemView = treeItemView |
509 | 528 |
510 // Handle node expand and collapse event | |
511 if (!currentNode.getChildren().isEmpty()) { | |
512 val isNodeExpanded: Boolean = currentNode.isExpanded() | |
513 if (isNodeExpanded) collapseNode(currentNode) else expandNode(currentNode) | |
514 currentNode.setExpanded(!isNodeExpanded) | |
515 // Handle DWTreeItem expand listener event | |
516 if (!isNodeExpanded && treeItemExpandListener != null) treeItemExpandListener!!( | |
517 currentNode, | |
518 v | |
519 ) | |
520 } | |
521 notifyDataSetChanged() | 529 notifyDataSetChanged() |
522 | 530 |
523 // Handle DWTreeItem click listener event | 531 // Handle DWTreeItem click listener event |
524 if (treeItemClickListener != null) treeItemClickListener!!( | 532 if (treeItemClickListener != null) treeItemClickListener!!( |
525 currentNode, | 533 currentNode, |