From: Olaf Wintermann Date: Sun, 22 Mar 2026 18:58:01 +0000 (+0100) Subject: unify UiList and UiSourceList getSelection method X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;ds=sidebyside;p=rssreader.git unify UiList and UiSourceList getSelection method --- diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt index b2e6ef6..95fb68c 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedList.kt @@ -22,7 +22,7 @@ class FeedList(window: MainWindow) : Document() { // 0: use feed settings // 1: load item description - // 2: + // 2: load item link in internal browser val browserSetting = integer("browserSetting") val filter = integer("filter") diff --git a/ui-java/src/main/java/de/unixwork/ui/UiList.java b/ui-java/src/main/java/de/unixwork/ui/UiList.java index 223c0ee..e37dccb 100644 --- a/ui-java/src/main/java/de/unixwork/ui/UiList.java +++ b/ui-java/src/main/java/de/unixwork/ui/UiList.java @@ -76,9 +76,13 @@ public class UiList extends ArrayList { } public int[] getSelection() { + return UiList.getSelection(valuePtr); + } + + protected static int[] getSelection(MemorySegment uiListPtr) { ListFuncs ui = ListFuncs.getInstance(); try { - MemorySegment sel = (MemorySegment)ui.list_get_selection_allocated.invoke(valuePtr); + MemorySegment sel = (MemorySegment)ui.list_get_selection_allocated.invoke(uiListPtr); int count = (int)ui.list_selection_get_count.invoke(sel); int[] selection = new int[count]; MemorySegment rows = (MemorySegment)ui.list_selection_get_rows.invoke(sel); diff --git a/ui-java/src/main/java/de/unixwork/ui/UiSourceList.java b/ui-java/src/main/java/de/unixwork/ui/UiSourceList.java index 0f17c96..7b9323c 100644 --- a/ui-java/src/main/java/de/unixwork/ui/UiSourceList.java +++ b/ui-java/src/main/java/de/unixwork/ui/UiSourceList.java @@ -99,23 +99,8 @@ public class UiSourceList { } } - // TODO: the selection code is almost identical to the UiList selection code -> refactor public int[] getSelection() { - ListFuncs ui = ListFuncs.getInstance(); - try { - MemorySegment sel = (MemorySegment)ui.list_get_selection_allocated.invoke(valuePtr); - int count = (int)ui.list_selection_get_count.invoke(sel); - int[] selection = new int[count]; - MemorySegment rows = (MemorySegment)ui.list_selection_get_rows.invoke(sel); - rows = rows.reinterpret(count * ValueLayout.JAVA_INT.byteSize()); - for(int i=0; i