# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1653581913 0 # Node ID 5f77f52df8ac6cfc6367088229dc6b66c8fa9fdb # Parent 94af460bb95433f181eb183e27f893d32b71baee Android: Work in progress changes to get the tree working. diff -r 94af460bb954 -r 5f77f52df8ac android/DWindows.kt --- 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 = 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() 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 diff -r 94af460bb954 -r 5f77f52df8ac android/dw.cpp --- 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;