comparison android/DWindows.kt @ 2783:1b7c1b6ee760

Android: Fix tree basic functionality... need to add child branches, implement callback functions and find better choices for the expand and collapse icons from the system resources.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 07 Jul 2022 19:49:28 +0000
parents dff8fb5ddadd
children cccbb367bcd3
comparison
equal deleted inserted replaced
2782:dff8fb5ddadd 2783:1b7c1b6ee760
389 // @param node the current DWTreeItem 389 // @param node the current DWTreeItem
390 fun bindTreeItem(node: DWTreeItem) { 390 fun bindTreeItem(node: DWTreeItem) {
391 val padding: Int = node.getLevel() * nodePadding 391 val padding: Int = node.getLevel() * nodePadding
392 val treeItemView = itemView as DWTreeItemView 392 val treeItemView = itemView as DWTreeItemView
393 393
394 itemView.setPadding( 394 treeItemView.setPadding(
395 padding, 395 padding,
396 itemView.paddingTop, 396 treeItemView.paddingTop,
397 itemView.paddingRight, 397 treeItemView.paddingRight,
398 itemView.paddingBottom 398 treeItemView.paddingBottom
399 ) 399 )
400 treeItemView.textView.text = node.getTitle() 400 treeItemView.textView.text = node.getTitle()
401 treeItemView.iconView.setImageDrawable(node.getIcon()) 401 treeItemView.iconView.setImageDrawable(node.getIcon())
402 if(node.getChildren().size == 0) { 402 if(node.getChildren().size == 0) {
403 treeItemView.expandCollapseView.setImageDrawable(null) 403 treeItemView.expandCollapseView.setImageDrawable(null)
475 treeItemManager = manager 475 treeItemManager = manager
476 } 476 }
477 477
478 override fun onCreateViewHolder(parent: ViewGroup, layoutId: Int): DWTreeViewHolder { 478 override fun onCreateViewHolder(parent: ViewGroup, layoutId: Int): DWTreeViewHolder {
479 val view = DWTreeItemView(parent.context) 479 val view = DWTreeItemView(parent.context)
480 parent.addView(view)
481 return treeViewHolderFactory.getTreeViewHolder(view, layoutId) 480 return treeViewHolderFactory.getTreeViewHolder(view, layoutId)
482 } 481 }
483 482
484 override fun onBindViewHolder(holder: DWTreeViewHolder, position: Int) { 483 override fun onBindViewHolder(holder: DWTreeViewHolder, position: Int) {
485 val currentNode: DWTreeItem = treeItemManager.get(position) 484 val currentNode: DWTreeItem = treeItemManager.get(position)
516 true 515 true
517 } 516 }
518 } 517 }
519 518
520 override fun getItemViewType(position: Int): Int { 519 override fun getItemViewType(position: Int): Int {
521 // TODO: Fix this with no layoutId 520 return 1
522 return 0
523 } 521 }
524 522
525 override fun getItemCount(): Int { 523 override fun getItemCount(): Int {
526 return treeItemManager.size() 524 return treeItemManager.size()
527 } 525 }
593 } 591 }
594 592
595 // Clear all the items from the tree 593 // Clear all the items from the tree
596 fun clear() { 594 fun clear() {
597 treeItemManager.clearItems() 595 treeItemManager.clearItems()
596 notifyDataSetChanged()
598 } 597 }
599 598
600 // Register a callback to be invoked when this DWTreeItem is clicked 599 // Register a callback to be invoked when this DWTreeItem is clicked
601 // @param listener The callback that will run 600 // @param listener The callback that will run
602 fun setTreeItemClickListener(listener: OnTreeItemClickListener?) { 601 fun setTreeItemClickListener(listener: OnTreeItemClickListener?) {
621 fun updateTree() 620 fun updateTree()
622 { 621 {
623 val treeViewAdapter = this.adapter as DWTreeViewAdapter 622 val treeViewAdapter = this.adapter as DWTreeViewAdapter
624 623
625 treeViewAdapter.updateTreeItems(roots) 624 treeViewAdapter.updateTreeItems(roots)
625 treeViewAdapter.notifyDataSetChanged()
626 } 626 }
627 } 627 }
628 628
629 // Color Wheel section 629 // Color Wheel section
630 private val HUE_COLORS = intArrayOf( 630 private val HUE_COLORS = intArrayOf(
4602 if(parent == null) { 4602 if(parent == null) {
4603 tree.roots.add(treeitem!!) 4603 tree.roots.add(treeitem!!)
4604 } else { 4604 } else {
4605 parent.addChild(treeitem!!) 4605 parent.addChild(treeitem!!)
4606 } 4606 }
4607 treeViewAdapter.notifyDataSetChanged() 4607 tree.updateTree()
4608 } 4608 }
4609 return treeitem 4609 return treeitem
4610 } 4610 }
4611 4611
4612 fun treeGetTitle(tree: DWTree, item: DWTreeItem): String? 4612 fun treeGetTitle(tree: DWTree, item: DWTreeItem): String?
4681 if(state != 0) { 4681 if(state != 0) {
4682 treeViewAdapter.expandNode(item) 4682 treeViewAdapter.expandNode(item)
4683 } else { 4683 } else {
4684 treeViewAdapter.collapseNode(item) 4684 treeViewAdapter.collapseNode(item)
4685 } 4685 }
4686 treeViewAdapter.notifyDataSetChanged()
4687 } 4686 }
4688 } 4687 }
4689 4688
4690 fun treeItemDelete(tree: DWTree, item: DWTreeItem) 4689 fun treeItemDelete(tree: DWTree, item: DWTreeItem)
4691 { 4690 {
4695 fun treeClear(tree: DWTree) 4694 fun treeClear(tree: DWTree)
4696 { 4695 {
4697 waitOnUiThread { 4696 waitOnUiThread {
4698 val treeViewAdapter = tree.adapter as DWTreeViewAdapter 4697 val treeViewAdapter = tree.adapter as DWTreeViewAdapter
4699 treeViewAdapter.clear() 4698 treeViewAdapter.clear()
4700 treeViewAdapter.notifyDataSetChanged()
4701 } 4699 }
4702 } 4700 }
4703 4701
4704 fun containerNew(cid: Int, multi: Int): ListView? 4702 fun containerNew(cid: Int, multi: Int): ListView?
4705 { 4703 {