Mercurial > dwindows
diff android/DWindows.kt @ 2558:ebc6a4ff5f1f
Android: Implement container row data and titles, required for the callbacks.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 18 May 2021 01:04:52 +0000 |
parents | 756331246f94 |
children | 3da35cd91ca7 |
line wrap: on
line diff
--- a/android/DWindows.kt Mon May 17 21:11:40 2021 +0000 +++ b/android/DWindows.kt Tue May 18 01:04:52 2021 +0000 @@ -465,6 +465,8 @@ var columns = mutableListOf<String?>() var types = mutableListOf<Int>() var data = mutableListOf<Any?>() + var rowdata = mutableListOf<Long>() + var rowtitle = mutableListOf<String?>() fun numberOfColumns(): Int { @@ -511,6 +513,36 @@ } } + fun changeRowData(row: Int, rdata: Long) + { + if(row > -1 && row < rowdata.size) { + rowdata[row] = rdata + } + } + + fun getRowData(row: Int): Long + { + if(row > -1 && row < rowdata.size) { + return rowdata[row] + } + return 0 + } + + fun changeRowTitle(row: Int, title: String?) + { + if(row > -1 && row < rowtitle.size) { + rowtitle[row] = title + } + } + + fun getRowTitle(row: Int): String? + { + if(row > -1 && row < rowtitle.size) { + return rowtitle[row] + } + return null + } + fun addColumn(title: String?, type: Int) { columns.add(title) @@ -519,14 +551,62 @@ data.clear() } + fun deleteRows(count: Int) + { + if(count < rowdata.size) { + for(i in 0 until count) { + for(j in 0 until columns.size) { + data.removeAt(0) + } + rowdata.removeAt(0) + rowtitle.removeAt(0) + } + } else { + data.clear() + rowdata.clear() + rowtitle.clear() + } + } + + fun deleteRowByTitle(title: String?) + { + for(i in 0 until rowtitle.size) { + if(rowtitle[i] != null && rowtitle[i] == title) { + for(j in 0 until columns.size) { + data.removeAt(i * columns.size) + } + rowdata.removeAt(i) + rowtitle.removeAt(i) + } + } + } + + fun deleteRowByData(rdata: Long) + { + for(i in 0 until rowdata.size) { + if(rowdata[i] == rdata) { + for(j in 0 until columns.size) { + data.removeAt(i * columns.size) + } + rowdata.removeAt(i) + rowtitle.removeAt(i) + } + } + } + fun addRows(count: Int): Long { var startRow: Long = numberOfRows().toLong() - for(i in 0 until (count * columns.size)) + for(i in 0 until count) { - // Fill in with nulls to be set later - data.add(null) + for(j in 0 until columns.size) + { + // Fill in with nulls to be set later + data.add(null) + } + rowdata.add(0) + rowtitle.add(null) } return startRow } @@ -534,6 +614,8 @@ fun clear() { data.clear() + rowdata.clear() + rowtitle.clear() } } @@ -1953,6 +2035,24 @@ } } + fun containerChangeRowData(cont: ListView, row: Int, data: Long) + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + adapter.model.changeRowData(row, data) + } + } + + fun containerChangeRowTitle(cont: ListView, row: Int, title: String?) + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + adapter.model.changeRowTitle(row, title) + } + } + fun containerGetColumnType(cont: ListView, column: Int): Int { var type: Int = 0 @@ -1965,6 +2065,33 @@ return type } + fun containerDelete(cont: ListView, rowcount: Int) + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + adapter.model.deleteRows(rowcount) + } + } + + fun containerRowDeleteByTitle(cont: ListView, title: String?) + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + adapter.model.deleteRowByTitle(title) + } + } + + fun containerRowDeleteByData(cont: ListView, data: Long) + { + waitOnUiThread { + val adapter: DWContainerAdapter = cont.adapter as DWContainerAdapter + + adapter.model.deleteRowByData(data) + } + } + fun containerClear(cont: ListView) { waitOnUiThread {