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