]> uap-core.de Git - rssreader.git/commitdiff
add first model classes
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 24 Jul 2025 20:30:58 +0000 (22:30 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 24 Jul 2025 20:30:58 +0000 (22:30 +0200)
rss-application/src/main/kotlin/de/unixwork/rssreader/App.kt
rss-application/src/main/kotlin/de/unixwork/rssreader/Feed.kt [new file with mode: 0644]
rss-application/src/main/kotlin/de/unixwork/rssreader/FeedCollection.kt [new file with mode: 0644]
rss-application/src/main/kotlin/de/unixwork/rssreader/FeedSourceList.kt [new file with mode: 0644]
rss-application/src/main/kotlin/de/unixwork/rssreader/Item.kt [new file with mode: 0644]
rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt

index 744fc912cb92aab5c3c49574c0ae0b3bcb9a0c29..8d4ec88a60b5e8548e2446bc475305506eb378f5 100644 (file)
@@ -6,6 +6,10 @@ import de.unixwork.ui.Toolkit
 class App : Application {
     override fun startup() {
         val window = MainWindow()
+
+        val data = FeedSourceList()
+        window.window.ui.attach(data)
+
         window.show()
     }
 
diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/Feed.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/Feed.kt
new file mode 100644 (file)
index 0000000..a098c69
--- /dev/null
@@ -0,0 +1,6 @@
+package de.unixwork.rssreader
+
+
+class Feed(uri: String) {
+    val uri = uri
+}
diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedCollection.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedCollection.kt
new file mode 100644 (file)
index 0000000..1df2afc
--- /dev/null
@@ -0,0 +1,8 @@
+package de.unixwork.rssreader
+
+import de.unixwork.ui.Document
+
+class FeedCollection(name: String) : Document() {
+    private val name = name
+    private val items = list<Item>("items")
+}
\ No newline at end of file
diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedSourceList.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/FeedSourceList.kt
new file mode 100644 (file)
index 0000000..e7f1d82
--- /dev/null
@@ -0,0 +1,18 @@
+package de.unixwork.rssreader
+
+import de.unixwork.ui.Document
+import de.unixwork.ui.SubList
+
+class FeedSourceList : Document() {
+    val feeds = this.sourcelist("feeds")
+
+    init {
+        // testcode
+        val sublist1 = SubList<FeedCollection>()
+        sublist1.header = "Test 1"
+        val sublist1data = list<FeedCollection>("sublist1data")
+        val col1 = FeedCollection("Test Feed")
+        sublist1data.add(col1)
+        feeds.add(sublist1)
+    }
+}
\ No newline at end of file
diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/Item.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/Item.kt
new file mode 100644 (file)
index 0000000..5eedce4
--- /dev/null
@@ -0,0 +1,6 @@
+package de.unixwork.rssreader
+
+class Item {
+    val title: String? = null
+    val link: String? = null
+}
\ No newline at end of file
index e1881ff532e80f679e5d049980c2a5c9d0e0c343..d05c86c6833dee8cb8ea86dd16667afbe8088cc0 100644 (file)
@@ -2,6 +2,7 @@ package de.unixwork.rssreader
 
 import de.unixwork.ui.SubListItem
 import de.unixwork.ui.UiObject
+import de.unixwork.ui.UiSourceList
 import de.unixwork.ui.kotlin.Toplevel
 import de.unixwork.ui.kotlin.sidebarWindow
 
@@ -10,16 +11,17 @@ class MainWindow {
 
     init {
         window = sidebarWindow("RSS Reader") {
-
             sidebar {
                 vbox(fill = true) {
-                    sourcelist(fill = true) { elm: Object ->
+                    sourcelist(fill = true, varname = "feeds") { elm: Object ->
                         val item = SubListItem()
                         item.label = "todo"
                         item
                     }
                     hbox(margin = 4) {
-                        button(icon = "list-add")
+                        button(icon = "list-add") {
+
+                        }
                     }
                 }
             }
@@ -39,6 +41,8 @@ class MainWindow {
         }
     }
 
+
+
     fun show() {
         window.show()
     }