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