You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by jo...@apache.org on 2020/05/07 16:46:18 UTC
[isis] 01/08: ISIS-2342 scale image 1/n, cleanup
This is an automated email from the ASF dual-hosted git repository.
joergrade pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 9133164e213cc8d6f1262906e0fe402fc3031b0a
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Sun Apr 12 10:40:18 2020 +0200
ISIS-2342 scale image 1/n, cleanup
---
.../kotlin/org/apache/isis/client/kroviz/App.kt | 3 --
.../org/apache/isis/client/kroviz/ui/FormItem.kt | 17 +---------
.../apache/isis/client/kroviz/ui/ImageDialog.kt | 36 +++++++++++++++++++---
.../apache/isis/client/kroviz/ui/kv/RoDialog.kt | 10 +++---
.../apache/isis/client/kroviz/ui/kv/UiManager.kt | 8 +++++
5 files changed, 47 insertions(+), 27 deletions(-)
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/App.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/App.kt
index 7d793ff..0cb2ed0 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/App.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/App.kt
@@ -7,7 +7,6 @@ import pl.treksoft.kvision.panel.vPanel
import pl.treksoft.kvision.require
import pl.treksoft.kvision.startApplication
import pl.treksoft.kvision.utils.px
-import kotlin.browser.window
class App : Application() {
@@ -31,7 +30,5 @@ class App : Application() {
}
fun main() {
- //TODO workaround according to https://github.com/rjaros/kvision/issues/113
- if (window.asDynamic().__karma__) return
startApplication(::App)
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/FormItem.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/FormItem.kt
index ac90137..2ba3ed6 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/FormItem.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/FormItem.kt
@@ -1,7 +1,6 @@
package org.apache.isis.client.kroviz.ui
import org.apache.isis.client.kroviz.to.Member
-import pl.treksoft.kvision.window.Window
class FormItem(
val label: String,
@@ -13,11 +12,10 @@ class FormItem(
var dspl: Displayable? = null,
val callBackId: String? = null) {
- private var originalContent: Any?
+ private var originalContent: Any? = content
var readOnly = false
init {
- originalContent = content
if (member != null) {
readOnly = member.isReadOnly()
}
@@ -28,10 +26,6 @@ class FormItem(
if (member != null) {
member.value?.content = value
}
- //IMPROVE this is special logic in a generic place
- if (type == org.apache.isis.client.kroviz.to.ValueType.SLIDER.type) {
- setOpacity(value!!)
- }
}
fun reset() {
@@ -45,13 +39,4 @@ class FormItem(
dspl = displayable
}
- @Deprecated("this needs a better home")
- fun setOpacity(value: String) {
- val opacity = value.toDouble()
- (dspl as Window).getElementJQuery()?.css(
- "background-color",
- "rgba(255, 255, 255, $opacity)"
- )
- }
-
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ImageDialog.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ImageDialog.kt
index bb51964..4525b36 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ImageDialog.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ImageDialog.kt
@@ -2,10 +2,14 @@ package org.apache.isis.client.kroviz.ui
import org.apache.isis.client.kroviz.to.ValueType
import org.apache.isis.client.kroviz.ui.kv.RoDialog
+import org.apache.isis.client.kroviz.ui.kv.UiManager
import org.apache.isis.client.kroviz.utils.UmlUtils
+import org.w3c.dom.events.KeyboardEvent
import kotlin.js.Date
-class ImageDialog(var label: String = defaultLabel, var pumlCode: String = defaultPumlCode) : Command {
+class ImageDialog(
+ var label: String = defaultLabel,
+ var pumlCode: String = defaultPumlCode) : Command {
companion object {
val defaultLabel = "UML Diagram Sample"
@@ -20,8 +24,8 @@ class ImageDialog(var label: String = defaultLabel, var pumlCode: String = defau
fun open() {
val formItems = mutableListOf<FormItem>()
- val slider = FormItem("Opacity", ValueType.SLIDER.type, content = 1.0)
- formItems.add(slider)
+// val slider = FormItem("Scale", ValueType.SLIDER.type, content = 1.0)
+// formItems.add(slider)
val img = FormItem("svg", ValueType.IMAGE.type, callBackId = uuid)
formItems.add(img)
@@ -33,10 +37,34 @@ class ImageDialog(var label: String = defaultLabel, var pumlCode: String = defau
widthPerc = 80,
heightPerc = 80)
dialog.open()
- slider.setDisplay(dialog)
+// slider.setDisplay(dialog)
UmlUtils.generateDiagram(pumlCode, uuid)
}
+ init {
+ kotlin.browser.window.addEventListener("keydown", fun(event) {
+ val dlg = UiManager.topDialog() as RoDialog
+ console.log("[ImageDialog.event] topWindow: $dlg")
+ console.log(dlg)
+ if (dlg.hasScalableContent()) {
+ val ke = event as KeyboardEvent
+ if (ke.ctrlKey && ke.keyCode == 189) { // -
+ //adjust svg viewbox
+ console.log("[<CTRL>-<->]")
+ event.stopPropagation()
+ ke.preventDefault()
+ }
+ if (ke.ctrlKey && ke.keyCode == 187) { // +
+ //adjust svg viewbox
+ console.log("[<CTRL>-<+>]")
+ event.stopPropagation()
+ ke.preventDefault()
+ }
+ }
+ })
+ }
+
+
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoDialog.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoDialog.kt
index 1d633f0..d619817 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoDialog.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoDialog.kt
@@ -1,8 +1,7 @@
package org.apache.isis.client.kroviz.ui.kv
+import org.apache.isis.client.kroviz.to.ValueType
import org.apache.isis.client.kroviz.ui.*
-import org.w3c.dom.events.Event
-import org.w3c.dom.events.MouseEvent
import pl.treksoft.kvision.core.CssSize
import pl.treksoft.kvision.core.UNIT
import pl.treksoft.kvision.core.Widget
@@ -11,11 +10,9 @@ import pl.treksoft.kvision.html.Button
import pl.treksoft.kvision.html.ButtonStyle
import pl.treksoft.kvision.panel.FlexJustify
import pl.treksoft.kvision.panel.HPanel
-import pl.treksoft.kvision.panel.SimplePanel
import pl.treksoft.kvision.panel.vPanel
import pl.treksoft.kvision.utils.perc
import pl.treksoft.kvision.utils.px
-import pl.treksoft.kvision.window.Window
class RoDialog(
caption: String,
@@ -91,4 +88,9 @@ class RoDialog(
dispose()
}
+ fun hasScalableContent(): Boolean {
+ val scalable = items.first { it.type == ValueType.IMAGE.type }
+ return scalable != null
+ }
+
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/UiManager.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/UiManager.kt
index 3a54419..2ccfcc0 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/UiManager.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/UiManager.kt
@@ -12,6 +12,7 @@ import org.apache.isis.client.kroviz.core.model.ObjectDM
import org.apache.isis.client.kroviz.to.TObject
import org.apache.isis.client.kroviz.to.mb.Menubars
import org.w3c.dom.events.KeyboardEvent
+import pl.treksoft.kvision.core.Component
import pl.treksoft.kvision.core.Widget
import pl.treksoft.kvision.dropdown.ContextMenu
import pl.treksoft.kvision.panel.SimplePanel
@@ -126,6 +127,13 @@ object UiManager {
pop()
}
+ fun topDialog(): Component {
+ val allDialogs = RoApp.getChildren().filter {
+ it is RoDialog
+ }
+ return allDialogs.first()
+ }
+
fun getUrl(): String {
return if (session == null) {
""