comparison android/DWindows.kt @ 2782:dff8fb5ddadd

Android: Added layout manager and code to trigger data change updates.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 07 Jul 2022 07:59:23 +0000
parents c28602443759
children 1b7c1b6ee760
comparison
equal deleted inserted replaced
2781:c28602443759 2782:dff8fb5ddadd
50 import androidx.constraintlayout.widget.Placeholder 50 import androidx.constraintlayout.widget.Placeholder
51 import androidx.core.app.NotificationCompat 51 import androidx.core.app.NotificationCompat
52 import androidx.core.app.NotificationManagerCompat 52 import androidx.core.app.NotificationManagerCompat
53 import androidx.core.content.res.ResourcesCompat 53 import androidx.core.content.res.ResourcesCompat
54 import androidx.core.view.MenuCompat 54 import androidx.core.view.MenuCompat
55 import androidx.recyclerview.widget.LinearLayoutManager
55 import androidx.recyclerview.widget.RecyclerView 56 import androidx.recyclerview.widget.RecyclerView
56 import androidx.viewpager2.widget.ViewPager2 57 import androidx.viewpager2.widget.ViewPager2
57 import com.google.android.material.tabs.TabLayout 58 import com.google.android.material.tabs.TabLayout
58 import com.google.android.material.tabs.TabLayout.OnTabSelectedListener 59 import com.google.android.material.tabs.TabLayout.OnTabSelectedListener
59 import com.google.android.material.tabs.TabLayoutMediator 60 import com.google.android.material.tabs.TabLayoutMediator
474 treeItemManager = manager 475 treeItemManager = manager
475 } 476 }
476 477
477 override fun onCreateViewHolder(parent: ViewGroup, layoutId: Int): DWTreeViewHolder { 478 override fun onCreateViewHolder(parent: ViewGroup, layoutId: Int): DWTreeViewHolder {
478 val view = DWTreeItemView(parent.context) 479 val view = DWTreeItemView(parent.context)
480 parent.addView(view)
479 return treeViewHolderFactory.getTreeViewHolder(view, layoutId) 481 return treeViewHolderFactory.getTreeViewHolder(view, layoutId)
480 } 482 }
481 483
482 override fun onBindViewHolder(holder: DWTreeViewHolder, position: Int) { 484 override fun onBindViewHolder(holder: DWTreeViewHolder, position: Int) {
483 val currentNode: DWTreeItem = treeItemManager.get(position) 485 val currentNode: DWTreeItem = treeItemManager.get(position)
4581 } 4583 }
4582 val treeViewAdapter = DWTreeViewAdapter(factory) 4584 val treeViewAdapter = DWTreeViewAdapter(factory)
4583 tree!!.tag = dataArrayMap 4585 tree!!.tag = dataArrayMap
4584 tree!!.id = cid 4586 tree!!.id = cid
4585 tree!!.adapter = treeViewAdapter 4587 tree!!.adapter = treeViewAdapter
4588 tree!!.layoutManager = LinearLayoutManager(this)
4586 } 4589 }
4587 } 4590 }
4588 return tree 4591 return tree
4589 } 4592 }
4590 4593
4599 if(parent == null) { 4602 if(parent == null) {
4600 tree.roots.add(treeitem!!) 4603 tree.roots.add(treeitem!!)
4601 } else { 4604 } else {
4602 parent.addChild(treeitem!!) 4605 parent.addChild(treeitem!!)
4603 } 4606 }
4607 treeViewAdapter.notifyDataSetChanged()
4604 } 4608 }
4605 return treeitem 4609 return treeitem
4606 } 4610 }
4607 4611
4608 fun treeGetTitle(tree: DWTree, item: DWTreeItem): String? 4612 fun treeGetTitle(tree: DWTree, item: DWTreeItem): String?
4626 } 4630 }
4627 4631
4628 fun treeItemChange(tree: DWTree, item: DWTreeItem, title: String?, icon: Drawable?) 4632 fun treeItemChange(tree: DWTree, item: DWTreeItem, title: String?, icon: Drawable?)
4629 { 4633 {
4630 waitOnUiThread { 4634 waitOnUiThread {
4635 var changed = false
4636
4631 if(title != null) { 4637 if(title != null) {
4632 item.setTitle(title) 4638 item.setTitle(title)
4639 changed = true
4633 } 4640 }
4634 if(icon != null) { 4641 if(icon != null) {
4635 item.setIcon(icon) 4642 item.setIcon(icon)
4643 changed = true
4644 }
4645 if(changed == true) {
4646 var treeViewAdapter = tree.adapter as DWTreeViewAdapter
4647 treeViewAdapter.notifyDataSetChanged()
4636 } 4648 }
4637 } 4649 }
4638 } 4650 }
4639 4651
4640 fun treeItemSetData(tree: DWTree, item: DWTreeItem, data: Long) 4652 fun treeItemSetData(tree: DWTree, item: DWTreeItem, data: Long)
4669 if(state != 0) { 4681 if(state != 0) {
4670 treeViewAdapter.expandNode(item) 4682 treeViewAdapter.expandNode(item)
4671 } else { 4683 } else {
4672 treeViewAdapter.collapseNode(item) 4684 treeViewAdapter.collapseNode(item)
4673 } 4685 }
4686 treeViewAdapter.notifyDataSetChanged()
4674 } 4687 }
4675 } 4688 }
4676 4689
4677 fun treeItemDelete(tree: DWTree, item: DWTreeItem) 4690 fun treeItemDelete(tree: DWTree, item: DWTreeItem)
4678 { 4691 {
4682 fun treeClear(tree: DWTree) 4695 fun treeClear(tree: DWTree)
4683 { 4696 {
4684 waitOnUiThread { 4697 waitOnUiThread {
4685 val treeViewAdapter = tree.adapter as DWTreeViewAdapter 4698 val treeViewAdapter = tree.adapter as DWTreeViewAdapter
4686 treeViewAdapter.clear() 4699 treeViewAdapter.clear()
4700 treeViewAdapter.notifyDataSetChanged()
4687 } 4701 }
4688 } 4702 }
4689 4703
4690 fun containerNew(cid: Int, multi: Int): ListView? 4704 fun containerNew(cid: Int, multi: Int): ListView?
4691 { 4705 {