Mercurial > dwindows
changeset 2775:5f77f52df8ac
Android: Work in progress changes to get the tree working.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Thu, 26 May 2022 16:18:33 +0000 |
parents | 94af460bb954 |
children | 858155527b05 |
files | android/DWindows.kt android/dw.cpp |
diffstat | 2 files changed, 35 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/android/DWindows.kt Tue May 24 09:42:35 2022 +0000 +++ b/android/DWindows.kt Thu May 26 16:18:33 2022 +0000 @@ -67,10 +67,6 @@ import java.util.zip.ZipFile import kotlin.math.* -import androidx.annotation.NonNull - - - // Tree View section class DWTreeItem(value: Any, layoutId: Int) { @@ -547,6 +543,18 @@ get() = currentSelectedItem } +class DWTree(context: Context) : RecyclerView(context) +{ + var roots: MutableList<DWTreeItem> = ArrayList() + + fun updateTree() + { + val treeViewAdapter = this.adapter as DWTreeViewAdapter + + treeViewAdapter.updateTreeItems(roots) + } +} + // Color Wheel section private val HUE_COLORS = intArrayOf( Color.RED, @@ -4489,19 +4497,21 @@ return combobox } - fun treeNew(cid: Int): RecyclerView? + fun treeNew(cid: Int): DWTree? { - var tree: RecyclerView? = null + var tree: DWTree? = null waitOnUiThread { - tree = RecyclerView(this) + tree = DWTree(this) if(tree != null) { + val dataArrayMap = SimpleArrayMap<String, Long>() val factory = object : DWTreeViewHolderFactory { override fun getTreeViewHolder(view: View?, layout: Int): DWTreeViewHolder { return DWTreeCustomViewHolder(view!!) } } val treeViewAdapter = DWTreeViewAdapter(factory) + tree!!.tag = dataArrayMap tree!!.id = cid tree!!.adapter = treeViewAdapter } @@ -4509,6 +4519,23 @@ return tree } + fun treeInsertAfter(tree: DWTree, title: String, icon: Drawable, parent: DWTreeItem?, itemdata: Long): DWTreeItem? + { + var treeitem: DWTreeItem? = null + + waitOnUiThread { + var treeViewAdapter = tree.adapter as DWTreeViewAdapter + + treeitem = DWTreeItem(title, 0) + if(parent == null) { + tree.roots.add(treeitem!!) + } else { + parent.addChild(treeitem!!) + } + } + return treeitem + } + fun containerNew(cid: Int, multi: Int): ListView? { var cont: ListView? = null
--- a/android/dw.cpp Tue May 24 09:42:35 2022 +0000 +++ b/android/dw.cpp Thu May 26 16:18:33 2022 +0000 @@ -3292,7 +3292,7 @@ jclass clazz = _dw_find_class(env, DW_CLASS_NAME); // Get the method that you want to call jmethodID treeNew = env->GetMethodID(clazz, "treeNew", - "(I)Landroidx/recyclerview/widget/RecyclerView;"); + "(I)Lorg/dbsoft/dwindows/DWTree;"); // Call the method on the object jobject result = _dw_jni_check_result(env, env->CallObjectMethod(_dw_obj, treeNew, (int)cid), _DW_REFERENCE_WEAK); return result;