From 9665fe692681bc958e55d00cc0d0b238b7aee694 Mon Sep 17 00:00:00 2001
From: Robert Jaros <rjaros@finn.pl>
Date: Sat, 3 Feb 2018 23:21:46 +0100
Subject: Refactoring for kdoc API documentation with dokka

---
 .../kotlin/pl/treksoft/kvision/ApplicationBase.kt  | 21 ++++++++++++++++++--
 src/main/kotlin/pl/treksoft/kvision/HMR.kt         | 15 ++++++++++++++
 src/main/kotlin/pl/treksoft/kvision/basic/Label.kt |  6 ------
 .../kotlin/pl/treksoft/kvision/core/Component.kt   |  2 --
 .../pl/treksoft/kvision/core/StyledComponent.kt    |  4 ++--
 .../pl/treksoft/kvision/data/DataContainer.kt      |  2 +-
 src/main/kotlin/pl/treksoft/kvision/html/Label.kt  |  6 ++++++
 .../kotlin/pl/treksoft/kvision/panel/SplitPanel.kt |  5 +++--
 .../test/pl/treksoft/kvision/basic/LabelSpec.kt    | 23 ----------------------
 .../pl/treksoft/kvision/data/DataContainerSpec.kt  |  2 +-
 .../test/pl/treksoft/kvision/html/LabelSpec.kt     | 23 ++++++++++++++++++++++
 .../pl/treksoft/kvision/panel/DockPanelSpec.kt     |  2 +-
 .../pl/treksoft/kvision/panel/FlexPanelSpec.kt     |  2 +-
 .../pl/treksoft/kvision/panel/GridPanelSpec.kt     |  2 +-
 .../test/pl/treksoft/kvision/panel/HPanelSpec.kt   |  2 +-
 .../kvision/panel/ResponsiveGridPanelSpec.kt       |  2 +-
 .../pl/treksoft/kvision/panel/SplitPanelSpec.kt    |  2 +-
 .../pl/treksoft/kvision/panel/StackPanelSpec.kt    |  2 +-
 .../test/pl/treksoft/kvision/panel/TabPanelSpec.kt |  2 +-
 .../test/pl/treksoft/kvision/panel/VPanelSpec.kt   |  2 +-
 20 files changed, 79 insertions(+), 48 deletions(-)
 delete mode 100644 src/main/kotlin/pl/treksoft/kvision/basic/Label.kt
 create mode 100644 src/main/kotlin/pl/treksoft/kvision/html/Label.kt
 delete mode 100644 src/test/kotlin/test/pl/treksoft/kvision/basic/LabelSpec.kt
 create mode 100644 src/test/kotlin/test/pl/treksoft/kvision/html/LabelSpec.kt

(limited to 'src')

diff --git a/src/main/kotlin/pl/treksoft/kvision/ApplicationBase.kt b/src/main/kotlin/pl/treksoft/kvision/ApplicationBase.kt
index e9e99fc7..83ad69ca 100644
--- a/src/main/kotlin/pl/treksoft/kvision/ApplicationBase.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/ApplicationBase.kt
@@ -1,6 +1,23 @@
+/**
+ * @author Robert Jaros
+ */
 package pl.treksoft.kvision
 
+/**
+ * Base class for applications.
+ *
+ * Every application class should inherit from this abstract class.
+*/
 abstract class ApplicationBase {
-    abstract fun start(state: Map<String, Any>)
-    abstract fun dispose(): Map<String, Any>
+/**
+ * Starting point for an application.
+ * @param state Initial state between Hot Module Replacement (HMR).
+*/
+abstract fun start(state: Map<String, Any>)
+
+/**
+ * Ending point for an application.
+ * @return final state for Hot Module Replacement (HMR).
+*/
+abstract fun dispose(): Map<String, Any>
 }
diff --git a/src/main/kotlin/pl/treksoft/kvision/HMR.kt b/src/main/kotlin/pl/treksoft/kvision/HMR.kt
index e657567a..6fb9dfed 100644
--- a/src/main/kotlin/pl/treksoft/kvision/HMR.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/HMR.kt
@@ -1,11 +1,23 @@
+/**
+ * @author Robert Jaros
+ */
 package pl.treksoft.kvision
 
+/**
+ * Helper variable for Hot Module Replacement (HMR).
+ */
 external val module: Module
 
+/**
+ * Helper interface for Hot Module Replacement (HMR).
+ */
 external interface Module {
     val hot: Hot?
 }
 
+/**
+ * Helper interface for Hot Module Replacement (HMR).
+ */
 external interface Hot {
     val data: dynamic
 
@@ -16,4 +28,7 @@ external interface Hot {
     fun dispose(callback: (data: dynamic) -> Unit)
 }
 
+/**
+ * External function for loading CommonJS modules.
+ */
 external fun require(name: String): dynamic
diff --git a/src/main/kotlin/pl/treksoft/kvision/basic/Label.kt b/src/main/kotlin/pl/treksoft/kvision/basic/Label.kt
deleted file mode 100644
index a8d8bc16..00000000
--- a/src/main/kotlin/pl/treksoft/kvision/basic/Label.kt
+++ /dev/null
@@ -1,6 +0,0 @@
-package pl.treksoft.kvision.basic
-
-import pl.treksoft.kvision.html.TAG
-import pl.treksoft.kvision.html.Tag
-
-open class Label(text: String, rich: Boolean = false) : Tag(TAG.SPAN, text, rich)
diff --git a/src/main/kotlin/pl/treksoft/kvision/core/Component.kt b/src/main/kotlin/pl/treksoft/kvision/core/Component.kt
index af5ac830..bdd254ba 100644
--- a/src/main/kotlin/pl/treksoft/kvision/core/Component.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/core/Component.kt
@@ -8,8 +8,6 @@ import pl.treksoft.jquery.JQuery
 interface Component {
     var parent: Component?
     var visible: Boolean
-    var width: CssSize?
-    var height: CssSize?
 
     fun addCssClass(css: String): Widget
     fun removeCssClass(css: String): Widget
diff --git a/src/main/kotlin/pl/treksoft/kvision/core/StyledComponent.kt b/src/main/kotlin/pl/treksoft/kvision/core/StyledComponent.kt
index f4bf6e09..b2676929 100644
--- a/src/main/kotlin/pl/treksoft/kvision/core/StyledComponent.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/core/StyledComponent.kt
@@ -5,7 +5,7 @@ import pl.treksoft.kvision.utils.asString
 
 abstract class StyledComponent : Component {
 
-    override var width: CssSize? = null
+    open var width: CssSize? = null
         set(value) {
             field = value
             refresh()
@@ -20,7 +20,7 @@ abstract class StyledComponent : Component {
             field = value
             refresh()
         }
-    override var height: CssSize? = null
+    var height: CssSize? = null
         set(value) {
             field = value
             refresh()
diff --git a/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt b/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt
index 6f9dfaeb..af53807c 100644
--- a/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/data/DataContainer.kt
@@ -58,7 +58,7 @@ class DataContainer<M : DataComponent, C : Widget>(
         return this.child.renderVNode()
     }
 
-    fun get(index: Int) = model[index]
+    fun get(index: Int): M = model[index]
 
     override fun update() {
         model.forEach { it.container = this }
diff --git a/src/main/kotlin/pl/treksoft/kvision/html/Label.kt b/src/main/kotlin/pl/treksoft/kvision/html/Label.kt
new file mode 100644
index 00000000..3ce23639
--- /dev/null
+++ b/src/main/kotlin/pl/treksoft/kvision/html/Label.kt
@@ -0,0 +1,6 @@
+package pl.treksoft.kvision.html
+
+import pl.treksoft.kvision.html.TAG
+import pl.treksoft.kvision.html.Tag
+
+open class Label(text: String, rich: Boolean = false) : Tag(TAG.SPAN, text, rich)
diff --git a/src/main/kotlin/pl/treksoft/kvision/panel/SplitPanel.kt b/src/main/kotlin/pl/treksoft/kvision/panel/SplitPanel.kt
index 4f06a38f..722f60e6 100644
--- a/src/main/kotlin/pl/treksoft/kvision/panel/SplitPanel.kt
+++ b/src/main/kotlin/pl/treksoft/kvision/panel/SplitPanel.kt
@@ -3,6 +3,7 @@ package pl.treksoft.kvision.panel
 import com.github.snabbdom.VNode
 import pl.treksoft.jquery.JQuery
 import pl.treksoft.jquery.JQueryEventObject
+import pl.treksoft.kvision.core.StyledComponent
 import pl.treksoft.kvision.core.UNIT
 import pl.treksoft.kvision.html.TAG
 import pl.treksoft.kvision.html.Tag
@@ -39,9 +40,9 @@ open class SplitPanel(
                 }
                 onDragEnd = { e: JQueryEventObject, el: JQuery, _: dynamic ->
                     if (horizontal) {
-                        children[0].height = el.height().toInt() to px
+                        (children[0] as? StyledComponent)?.height = el.height().toInt() to px
                     } else {
-                        children[0].width = el.width().toInt() to px
+                        (children[0] as? StyledComponent)?.width = el.width().toInt() to px
                     }
                     self.dispatchEvent("dragEndSplitPanel", obj { detail = e })
                 }
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/basic/LabelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/basic/LabelSpec.kt
deleted file mode 100644
index c3019cc9..00000000
--- a/src/test/kotlin/test/pl/treksoft/kvision/basic/LabelSpec.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-package test.pl.treksoft.kvision.basic
-
-import pl.treksoft.kvision.basic.Label
-import pl.treksoft.kvision.core.Root
-import test.pl.treksoft.kvision.DomSpec
-import kotlin.browser.document
-import kotlin.test.Test
-import kotlin.test.assertEquals
-
-class LabelSpec : DomSpec {
-
-    @Test
-    fun render() {
-        run {
-            val root = Root("test")
-            val label = Label("This is a label")
-            root.add(label)
-            val element = document.getElementById("test")
-            assertEquals("<span>This is a label</span>", element?.innerHTML, "Should render correct label")
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/data/DataContainerSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/data/DataContainerSpec.kt
index e2fd7a0d..20a1e484 100644
--- a/src/test/kotlin/test/pl/treksoft/kvision/data/DataContainerSpec.kt
+++ b/src/test/kotlin/test/pl/treksoft/kvision/data/DataContainerSpec.kt
@@ -1,7 +1,7 @@
 package test.pl.treksoft.kvision.data
 
 import com.lightningkite.kotlin.observable.list.observableListOf
-import pl.treksoft.kvision.basic.Label
+import pl.treksoft.kvision.html.Label
 import pl.treksoft.kvision.core.Root
 import pl.treksoft.kvision.data.BaseDataComponent
 import pl.treksoft.kvision.data.DataContainer
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/html/LabelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/html/LabelSpec.kt
new file mode 100644
index 00000000..9c6c4e6e
--- /dev/null
+++ b/src/test/kotlin/test/pl/treksoft/kvision/html/LabelSpec.kt
@@ -0,0 +1,23 @@
+package test.pl.treksoft.kvision.html
+
+import pl.treksoft.kvision.core.Root
+import pl.treksoft.kvision.html.Label
+import test.pl.treksoft.kvision.DomSpec
+import kotlin.browser.document
+import kotlin.test.Test
+import kotlin.test.assertEquals
+
+class LabelSpec : DomSpec {
+
+    @Test
+    fun render() {
+        run {
+            val root = Root("test")
+            val label = Label("This is a label")
+            root.add(label)
+            val element = document.getElementById("test")
+            assertEquals("<span>This is a label</span>", element?.innerHTML, "Should render correct label")
+        }
+    }
+
+}
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/panel/DockPanelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/panel/DockPanelSpec.kt
index a83bbc6a..c748a45c 100644
--- a/src/test/kotlin/test/pl/treksoft/kvision/panel/DockPanelSpec.kt
+++ b/src/test/kotlin/test/pl/treksoft/kvision/panel/DockPanelSpec.kt
@@ -1,6 +1,6 @@
 package test.pl.treksoft.kvision.panel
 
-import pl.treksoft.kvision.basic.Label
+import pl.treksoft.kvision.html.Label
 import pl.treksoft.kvision.core.Root
 import pl.treksoft.kvision.panel.DockPanel
 import pl.treksoft.kvision.panel.SIDE
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/panel/FlexPanelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/panel/FlexPanelSpec.kt
index e1c3d160..d79b06f9 100644
--- a/src/test/kotlin/test/pl/treksoft/kvision/panel/FlexPanelSpec.kt
+++ b/src/test/kotlin/test/pl/treksoft/kvision/panel/FlexPanelSpec.kt
@@ -1,6 +1,6 @@
 package test.pl.treksoft.kvision.panel
 
-import pl.treksoft.kvision.basic.Label
+import pl.treksoft.kvision.html.Label
 import pl.treksoft.kvision.core.Root
 import pl.treksoft.kvision.panel.FLEXDIR
 import pl.treksoft.kvision.panel.FLEXJUSTIFY
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/panel/GridPanelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/panel/GridPanelSpec.kt
index 571f13e9..6590e0b0 100644
--- a/src/test/kotlin/test/pl/treksoft/kvision/panel/GridPanelSpec.kt
+++ b/src/test/kotlin/test/pl/treksoft/kvision/panel/GridPanelSpec.kt
@@ -1,6 +1,6 @@
 package test.pl.treksoft.kvision.panel
 
-import pl.treksoft.kvision.basic.Label
+import pl.treksoft.kvision.html.Label
 import pl.treksoft.kvision.core.Root
 import pl.treksoft.kvision.panel.GridPanel
 import test.pl.treksoft.kvision.DomSpec
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/panel/HPanelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/panel/HPanelSpec.kt
index 589bd9df..a76c7eb0 100644
--- a/src/test/kotlin/test/pl/treksoft/kvision/panel/HPanelSpec.kt
+++ b/src/test/kotlin/test/pl/treksoft/kvision/panel/HPanelSpec.kt
@@ -1,6 +1,6 @@
 package test.pl.treksoft.kvision.panel
 
-import pl.treksoft.kvision.basic.Label
+import pl.treksoft.kvision.html.Label
 import pl.treksoft.kvision.core.Root
 import pl.treksoft.kvision.panel.FLEXJUSTIFY
 import pl.treksoft.kvision.panel.HPanel
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/panel/ResponsiveGridPanelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/panel/ResponsiveGridPanelSpec.kt
index 2bbb3774..d52fb3d7 100644
--- a/src/test/kotlin/test/pl/treksoft/kvision/panel/ResponsiveGridPanelSpec.kt
+++ b/src/test/kotlin/test/pl/treksoft/kvision/panel/ResponsiveGridPanelSpec.kt
@@ -1,6 +1,6 @@
 package test.pl.treksoft.kvision.panel
 
-import pl.treksoft.kvision.basic.Label
+import pl.treksoft.kvision.html.Label
 import pl.treksoft.kvision.core.Root
 import pl.treksoft.kvision.panel.ResponsiveGridPanel
 import test.pl.treksoft.kvision.DomSpec
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/panel/SplitPanelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/panel/SplitPanelSpec.kt
index 0cce9bb5..4be7f441 100644
--- a/src/test/kotlin/test/pl/treksoft/kvision/panel/SplitPanelSpec.kt
+++ b/src/test/kotlin/test/pl/treksoft/kvision/panel/SplitPanelSpec.kt
@@ -1,6 +1,6 @@
 package test.pl.treksoft.kvision.panel
 
-import pl.treksoft.kvision.basic.Label
+import pl.treksoft.kvision.html.Label
 import pl.treksoft.kvision.core.Root
 import pl.treksoft.kvision.panel.DIRECTION
 import pl.treksoft.kvision.panel.SplitPanel
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/panel/StackPanelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/panel/StackPanelSpec.kt
index f9f3f68a..51e4a3f2 100644
--- a/src/test/kotlin/test/pl/treksoft/kvision/panel/StackPanelSpec.kt
+++ b/src/test/kotlin/test/pl/treksoft/kvision/panel/StackPanelSpec.kt
@@ -1,6 +1,6 @@
 package test.pl.treksoft.kvision.panel
 
-import pl.treksoft.kvision.basic.Label
+import pl.treksoft.kvision.html.Label
 import pl.treksoft.kvision.core.Root
 import pl.treksoft.kvision.panel.StackPanel
 import test.pl.treksoft.kvision.DomSpec
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/panel/TabPanelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/panel/TabPanelSpec.kt
index d8c0f905..4d1803b1 100644
--- a/src/test/kotlin/test/pl/treksoft/kvision/panel/TabPanelSpec.kt
+++ b/src/test/kotlin/test/pl/treksoft/kvision/panel/TabPanelSpec.kt
@@ -1,6 +1,6 @@
 package test.pl.treksoft.kvision.panel
 
-import pl.treksoft.kvision.basic.Label
+import pl.treksoft.kvision.html.Label
 import pl.treksoft.kvision.core.Root
 import pl.treksoft.kvision.panel.TabPanel
 import test.pl.treksoft.kvision.DomSpec
diff --git a/src/test/kotlin/test/pl/treksoft/kvision/panel/VPanelSpec.kt b/src/test/kotlin/test/pl/treksoft/kvision/panel/VPanelSpec.kt
index 26fb2675..ad8ceaac 100644
--- a/src/test/kotlin/test/pl/treksoft/kvision/panel/VPanelSpec.kt
+++ b/src/test/kotlin/test/pl/treksoft/kvision/panel/VPanelSpec.kt
@@ -1,6 +1,6 @@
 package test.pl.treksoft.kvision.panel
 
-import pl.treksoft.kvision.basic.Label
+import pl.treksoft.kvision.html.Label
 import pl.treksoft.kvision.core.Root
 import pl.treksoft.kvision.panel.FLEXJUSTIFY
 import pl.treksoft.kvision.panel.VPanel
-- 
cgit