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:17 UTC

[isis] branch master updated (5ffee67 -> e3f04ea)

This is an automated email from the ASF dual-hosted git repository.

joergrade pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from 5ffee67  ISIS-2340: further moving logic to common UI model
     new 9133164  ISIS-2342 scale image 1/n, cleanup
     new 550cb99  Merge branch 'master' of https://github.com/apache/isis
     new 0e74d48  ISIS-2342 scale image /n, cleanup
     new a4d2560  ISIS-2342 scale image 2/n
     new c542086  Merge branch 'master' of https://github.com/apache/isis
     new e44f4fc  Merge branch 'master' of https://github.com/apache/isis
     new f8b0286  ISIS-2342 class diagram with properties, cleanup
     new e3f04ea  Merge branch 'master' of https://github.com/apache/isis

The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../kotlin/org/apache/isis/client/kroviz/App.kt    |  3 -
 .../core/aggregator/DomainTypesAggregator.kt       |  1 +
 .../isis/client/kroviz/core/model/DiagramDM.kt     |  5 +-
 .../isis/client/kroviz/core/model/DisplayModel.kt  | 11 ++--
 .../org/apache/isis/client/kroviz/to/Link.kt       |  2 +-
 .../org/apache/isis/client/kroviz/to/bs3/Grid.kt   |  8 ---
 .../org/apache/isis/client/kroviz/ui/FormItem.kt   | 17 +----
 .../apache/isis/client/kroviz/ui/ImageDialog.kt    | 63 +++++++++++++++---
 .../apache/isis/client/kroviz/ui/kv/RoDialog.kt    | 10 +--
 .../apache/isis/client/kroviz/ui/kv/UiManager.kt   |  8 +++
 .../apache/isis/client/kroviz/utils/DomHelper.kt   | 10 +++
 .../client/kroviz/utils/ScalableVectorGraphic.kt   | 51 +++++++++++++++
 .../apache/isis/client/kroviz/utils/XmlHelper.kt   |  3 +-
 .../ScalableVectorGraphicTest.kt                   | 59 +++++++++++++++++
 .../kroviz/snapshots/simpleapp1_16_0/PUML_SVG.kt   | 74 ++++++++++++++++++++++
 15 files changed, 274 insertions(+), 51 deletions(-)
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/ScalableVectorGraphic.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org.apache.isis.client.kroviz.util/ScalableVectorGraphicTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/PUML_SVG.kt


[isis] 03/08: ISIS-2342 scale image /n, cleanup

Posted by jo...@apache.org.
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 0e74d4842c03b28206a108ea57e74972bfc63b88
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Fri May 1 16:51:10 2020 +0200

    ISIS-2342 scale image /n, cleanup
---
 .../ScalableVectorGraphicTest.kt                   | 59 +++++++++++++++++
 .../kroviz/snapshots/simpleapp1_16_0/PUML_SVG.kt   | 74 ++++++++++++++++++++++
 2 files changed, 133 insertions(+)

diff --git a/incubator/clients/kroviz/src/test/kotlin/org.apache.isis.client.kroviz.util/ScalableVectorGraphicTest.kt b/incubator/clients/kroviz/src/test/kotlin/org.apache.isis.client.kroviz.util/ScalableVectorGraphicTest.kt
new file mode 100644
index 0000000..af4c455
--- /dev/null
+++ b/incubator/clients/kroviz/src/test/kotlin/org.apache.isis.client.kroviz.util/ScalableVectorGraphicTest.kt
@@ -0,0 +1,59 @@
+package org.apache.isis.client.kroviz.util
+
+import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.PUML_SVG
+import org.apache.isis.client.kroviz.utils.ScalableVectorGraphic
+import org.w3c.dom.parsing.DOMParser
+import kotlin.test.Test
+import kotlin.test.assertEquals
+
+class ScalableVectorGraphicTest {
+
+    @Test
+    fun testScaleDown() {
+        //given
+        val response = PUML_SVG.str
+        val type = "image/svg+xml"
+        val p = DOMParser()
+        //when
+        val doc = p.parseFromString(response, type)
+        val svg = ScalableVectorGraphic(doc)
+        svg.scaleDown()
+
+        // then
+        assertEquals((203 * 0.9).toInt(), svg.getHeight())
+        assertEquals((309 * 0.9).toInt(), svg.getWidth())
+    }
+
+    @Test
+    fun testScaleUp() {
+        //given
+        val response = PUML_SVG.str
+        val type = "image/svg+xml"
+        val p = DOMParser()
+        //when
+        val doc = p.parseFromString(response, type)
+        val svg = ScalableVectorGraphic(doc)
+        svg.scaleUp()
+
+        // then
+        assertEquals((203 * 1.1).toInt(), svg.getHeight())
+        assertEquals((309 * 1.1).toInt(), svg.getWidth())
+    }
+
+    @Test
+    fun testScale2() {
+        //given
+        val response = PUML_SVG.str
+        val type = "image/svg+xml"
+        val p = DOMParser()
+        //when
+        val doc = p.parseFromString(response, type)
+        val svg = ScalableVectorGraphic(doc)
+        svg.scaleUp(2.0)
+
+        //then
+        assertEquals(406, svg.getHeight())
+        assertEquals(618, svg.getWidth())
+    }
+
+}
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/PUML_SVG.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/PUML_SVG.kt
new file mode 100644
index 0000000..67e0d72
--- /dev/null
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/PUML_SVG.kt
@@ -0,0 +1,74 @@
+package org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0
+
+import org.apache.isis.client.kroviz.snapshots.Response
+
+object PUML_SVG: Response() {
+    override val url= "https://kroki.io/"
+    override val str = """<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" contentScriptType="application/ecmascript" contentStyleType="text/css"
+     height="203px" preserveAspectRatio="none" style="width:309px;height:203px;" version="1.1" viewBox="0 0 309 203"
+     width="309px" zoomAndPan="magnify">
+    <defs>
+        <filter height="300%" id="f1xj00ih3jrk7f" width="300%" x="-1" y="-1">
+            <feGaussianBlur result="blurOut" stdDeviation="2.0"/>
+            <feColorMatrix in="blurOut" result="blurOut2" type="matrix"
+                           values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/>
+            <feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/>
+            <feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/>
+        </filter>
+    </defs>
+    <g><!--MD5=[f621a9b5735c62a9e50fa7c1e42ea0f4]↵cluster domainapp.modules.simple.dom.impl-->
+        <polygon fill="#FFFFFF" filter="url(#f1xj00ih3jrk7f)"
+                 points="14,16,277,16,284,38.7999,287,38.7999,287,191,14,191,14,16"
+                 style="stroke: #000000; stroke-width: 1.5;"/>
+        <line style="stroke: #000000; stroke-width: 1.5;" x1="14" x2="284" y1="38.7999" y2="38.7999"/>
+        <text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs"
+              textLength="257" x="18" y="31.9999">domainapp.modules.simple.dom.impl
+        </text><!--MD5=[e6e8857f289496579330543e748c2106]↵class SimpleObject-->
+        <rect fill="#FEFECE" filter="url(#f1xj00ih3jrk7f)" height="140.3993" id="SimpleObject"
+              style="stroke: #A80036; stroke-width: 1.5;" width="129" x="85.5" y="43"/>
+        <ellipse cx="112.2" cy="59" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/>
+        <path d="M111.5594,62.7813 Q112.3563,62.7813 112.9266,62.5859 Q113.4969,62.3906 113.7391,62.1641 Q113.9813,61.9375 114.2234,61.7422 Q114.4656,61.5469 114.6844,61.5469 Q115.0281,61.5469 115.2859,61.8047 Q115.5438,62.0625 115.5438,62.3906 Q115.5438,63.125 114.3797,63.8047 Q113.2156,64.4844 111.5125,64.4844 Q109.3563,64.4844 107.9344,63.2188 Q106.5125,61.9531 106.5125,60.0156 L106.5125,58.8906 Q106.5125,56.8594 107.8406,55.4766 Q109.1688,54.0938 111.1375,54.0938 Q112.325,54.0938 113 [...]
+        <text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="71"
+              x="128.8" y="63.8">SimpleObject
+        </text>
+        <line style="stroke: #A80036; stroke-width: 1.5;" x1="86.5" x2="213.5" y1="75" y2="75"/>
+        <line style="stroke: #A80036; stroke-width: 1.5;" x1="86.5" x2="213.5" y1="83" y2="83"/>
+        <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93"
+              x="91.5" y="97.9999">rebuildMetamodel()
+        </text>
+        <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117"
+              x="91.5" y="111.1998">downloadJdoMetadata()
+        </text>
+        <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="69"
+              x="91.5" y="124.3997">openRestApi()
+        </text>
+        <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104"
+              x="91.5" y="137.5996">downloadLayoutXml()
+        </text>
+        <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="37"
+              x="91.5" y="150.7995">delete()
+        </text>
+        <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70"
+              x="91.5" y="163.9994">updateName()
+        </text>
+        <text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="56"
+              x="91.5" y="177.1993">clearHints()
+        </text><!--MD5=[903507c5920b0ecb2f83cd94e1c42ae5]↵@startuml
+↵package domainapp.modules.simple.dom.impl {
+↵class SimpleObject
+↵SimpleObject : rebuildMetamodel()
+↵SimpleObject : downloadJdoMetadata()
+↵SimpleObject : openRestApi()
+↵SimpleObject : downloadLayoutXml()
+↵SimpleObject : delete()
+↵SimpleObject : updateName()
+↵SimpleObject : clearHints()
+↵}
+↵@enduml
+↵↵PlantUML version 1.2020.04(Thu Mar 19 10:16:49 GMT 2020)↵(GPL source distribution)↵Java Runtime: OpenJDK Runtime Environment↵JVM: OpenJDK 64-Bit Server VM↵Java Version: 1.8.0_191-b12↵Operating System: Linux↵Default Encoding: UTF-8↵Language: en↵Country: US↵-->
+    </g>
+</svg>
+"""
+}
+


[isis] 06/08: Merge branch 'master' of https://github.com/apache/isis

Posted by jo...@apache.org.
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 e44f4fcbcac46c800711f2248699ac935aaf8f0c
Merge: c542086 f49f294
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Sat May 2 16:18:00 2020 +0200

    Merge branch 'master' of https://github.com/apache/isis

 core-parent/pom.xml                                |  21 +-
 .../core/metamodel/commons/ClassExtensions.java    |   8 +
 .../defaults/ActionParameterDefaultsFacet.java     |   7 +-
 .../ActionParameterDefaultsFacetViaMethod.java     |  61 +-
 .../isis/core/metamodel/spec/ManagedObject.java    |  21 +-
 .../core/metamodel/spec/feature/ObjectAction.java  |  13 +-
 .../spec/feature/ObjectActionParameter.java        |  11 +-
 .../specloader/specimpl/ObjectActionDefault.java   |  11 +-
 .../specloader/specimpl/ObjectActionMixedIn.java   |   6 +-
 .../specimpl/ObjectActionParameterAbstract.java    |  18 +-
 .../specloader/specimpl/PendingParameterModel.java | 107 +--
 ...erModel.java => PendingParameterModelHead.java} |  97 +--
 .../pdfjs/ui/components/PdfJsViewerPanel.java      |   3 +-
 incubator/pom.xml                                  |   1 -
 scripts/ci/build-demo-app.sh                       |  29 +-
 .../AbstractObjectMemberReprRenderer.java          |   3 -
 .../domainobjects/ObjectActionReprRenderer.java    |  39 +-
 .../ObjectCollectionReprRenderer.java              |   5 -
 .../domainobjects/ObjectPropertyReprRenderer.java  |   5 -
 .../wicket/model/models/ActionArgumentModel.java   |   2 -
 .../viewer/wicket/model/models/ActionModel.java    |  27 +-
 .../viewer/wicket/model/models/EntityModel.java    |   2 +-
 .../wicket/model/models/FormExecutorContext.java   |   2 -
 .../viewer/wicket/model/models/ScalarModel.java    | 873 ++-------------------
 .../wicket/model/models/ScalarParameterModel.java  | 318 ++++++++
 .../wicket/model/models/ScalarPropertyModel.java   | 377 +++++++++
 .../ScalarModel_isScalarSubtypingAnyOf_Test.java   |   2 +-
 .../components/actions/ActionParametersForm.java   |   5 +-
 .../ui/components/property/PropertyEditForm.java   |  19 +-
 .../components/property/PropertyEditFormPanel.java |   8 +-
 .../property/PropertyEditFormPanelFactory.java     |   6 +-
 .../ui/components/property/PropertyEditPanel.java  |   9 +-
 .../property/PropertyEditPanelFactory.java         |   6 +-
 .../property/PropertyFormExecutorStrategy.java     |  10 +-
 .../PropertyEditPromptHeaderPanel.java             |   6 +-
 .../ui/components/scalars/ScalarPanelAbstract.java |   4 +-
 .../components/scalars/ScalarPanelAbstract2.java   |  45 +-
 .../scalars/ScalarPanelSelect2Abstract.java        |   6 +-
 .../wicket/ui/panels/PromptFormAbstract.java       |   5 +-
 39 files changed, 1016 insertions(+), 1182 deletions(-)


[isis] 07/08: ISIS-2342 class diagram with properties, cleanup

Posted by jo...@apache.org.
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 f8b0286e57ac401cc74c44f499c4042f295b7765
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Mon May 4 10:10:21 2020 +0200

    ISIS-2342 class diagram with properties, cleanup
---
 .../core/aggregator/DomainTypesAggregator.kt       |  1 +
 .../isis/client/kroviz/core/model/DiagramDM.kt     |  5 +-
 .../isis/client/kroviz/core/model/DisplayModel.kt  | 11 ++-
 .../org/apache/isis/client/kroviz/to/Link.kt       |  2 +-
 .../org/apache/isis/client/kroviz/to/bs3/Grid.kt   |  8 ---
 .../apache/isis/client/kroviz/ui/ImageDialog.kt    | 81 +++++++++++++---------
 .../apache/isis/client/kroviz/utils/DomHelper.kt   | 10 +++
 .../apache/isis/client/kroviz/utils/XmlHelper.kt   |  3 +-
 8 files changed, 70 insertions(+), 51 deletions(-)

diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/DomainTypesAggregator.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/DomainTypesAggregator.kt
index e9714a8..673bac4 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/DomainTypesAggregator.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/DomainTypesAggregator.kt
@@ -25,6 +25,7 @@ class DomainTypesAggregator(val url: String) : BaseAggregator() {
 
         if (dsp.canBeDisplayed()) {
             RoStatusBar.updateDiagram(dsp as DiagramDM)
+            dsp.isRendered = true
         }
     }
 
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DiagramDM.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DiagramDM.kt
index 9ffb2ec..048a3e4 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DiagramDM.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DiagramDM.kt
@@ -20,9 +20,10 @@ class DiagramDM(override val title: String) : DisplayModel() {
     }
 
     override fun canBeDisplayed(): Boolean {
-        return (numberOfClasses == classes.size
+        if (isRendered) return false
+        return (numberOfClasses == classes.size)
                 //TODO && numberOfProperties == properties.size
-                )
+
     }
 
     override fun addData(obj: TransferObject) {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DisplayModel.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DisplayModel.kt
index 0b8911b..9738c4b 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DisplayModel.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DisplayModel.kt
@@ -14,7 +14,7 @@ abstract class DisplayModel {
     abstract fun addData(obj: TransferObject)
 
     open fun getObject(): TObject? {
-       // subclass responsibility
+        // subclass responsibility
         return null
     }
 
@@ -25,11 +25,10 @@ abstract class DisplayModel {
     fun extractTitle(): String {
         val strList = this.title.split("/")
         val len = strList.size
-        return if (len > 2) {
-            strList[len - 2]
-        } else {
-            ""
-        }
+        var answer = ""
+        if (len > 2) answer =
+                strList[len - 2]
+        return answer
     }
 
 }
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Link.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Link.kt
index b38fcce..70a7bac 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Link.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Link.kt
@@ -40,7 +40,7 @@ data class Link(val rel: String = "",
     }
 
     fun isProperty() : Boolean {
-        return type.endsWith("/object-property")
+        return rel.endsWith("/property")
     }
 
     fun isPropertyDescription() : Boolean {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Grid.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Grid.kt
index 631c449..152bc9c 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Grid.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Grid.kt
@@ -26,12 +26,4 @@ class Grid(document: Document) : TransferObject {
         }
     }
 
-    fun getPropertyList(): List<Property> {
-        val list = mutableListOf<Property>()
-        rows.forEach { c ->
-            list.addAll(c.getPropertyList())
-        }
-        return list
-    }
-
 }
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 4525b36..bd5ac96 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,9 +2,11 @@ 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.DomHelper
+import org.apache.isis.client.kroviz.utils.ScalableVectorGraphic
 import org.apache.isis.client.kroviz.utils.UmlUtils
-import org.w3c.dom.events.KeyboardEvent
+import org.w3c.dom.parsing.DOMParser
+import pl.treksoft.kvision.core.onEvent
 import kotlin.js.Date
 
 class ImageDialog(
@@ -21,50 +23,65 @@ class ImageDialog(
     }
 
     private val uuid: String = Date().toTimeString() //IMPROVE
+    private var dialog: RoDialog
 
     fun open() {
-        val formItems = mutableListOf<FormItem>()
-//        val slider = FormItem("Scale", ValueType.SLIDER.type, content = 1.0)
-//        formItems.add(slider)
+        dialog.open()
+        UmlUtils.generateDiagram(pumlCode, uuid)
+    }
 
+    init {
+        val formItems = mutableListOf<FormItem>()
         val img = FormItem("svg", ValueType.IMAGE.type, callBackId = uuid)
         formItems.add(img)
 
-        val dialog = RoDialog(
+        dialog = RoDialog(
+                widthPerc = 80,
                 caption = label,
                 items = formItems,
                 command = this,
-                widthPerc = 80,
                 heightPerc = 80)
-        dialog.open()
-//        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()
+        console.log("[ImageDialog.init] $dialog")
+ //       if (dialog.hasScalableContent()) {
+            dialog.onEvent {
+                keypress = { e ->
+                    console.log("[ImageDialog.open] keydown")
+                    console.log(e)
+                    if (e.key === "+" && e.ctrlKey) {
+                        scale(true)
+                        console.log("[<CTRL>-<Alt>-<+>]")
+                        e.stopPropagation()
+                        e.preventDefault()
+                    }
+                    if (e.key === "-" && e.ctrlKey) {
+                        scale(false)
+                        console.log("[<CTRL>-<Alt>-<->]")
+                        e.stopPropagation()
+                        e.preventDefault()
+                    }
                 }
             }
-        })
+ //       }
     }
 
 
+    private fun scale(upOrDown: Boolean) {
+        val mimeType = "image/svg+xml"
+        val oldElement = DomHelper.getById(uuid)
+        val oldStr = oldElement.toString()
+        console.log(oldStr)
+        val p = DOMParser()
+        var svg = p.parseFromString(oldStr, mimeType)
+        val image = ScalableVectorGraphic(svg)
+        if (upOrDown) {
+            image.scaleUp()
+        } else {
+            image.scaleDown()
+        }
+        val newStr = image.serialized()
+        svg = p.parseFromString(newStr, mimeType)
+        DomHelper.replaceWith(uuid, svg.documentElement!!)
+    }
+
 }
 
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/DomHelper.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/DomHelper.kt
index e06145b..b8e8278 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/DomHelper.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/DomHelper.kt
@@ -1,5 +1,6 @@
 package org.apache.isis.client.kroviz.utils
 
+import org.w3c.dom.Element
 import org.w3c.dom.parsing.DOMParser
 import kotlin.browser.document
 
@@ -17,6 +18,15 @@ object DomHelper {
         element.asDynamic().appendChild(svg.documentElement)
     }
 
+    fun getById(elementId: String): Element {
+        return document.getElementById(elementId)!!
+    }
+
+    fun replaceWith(elementId: String, svgElement: Element) {
+        val element = getById(elementId)!!
+        element.replaceWith(svgElement)
+    }
+
     fun download(filename: String, text: String) {
         val element = document.createElement("a")
         element.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(text))
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/XmlHelper.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/XmlHelper.kt
index 5a34ab5..274e5cf 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/XmlHelper.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/XmlHelper.kt
@@ -15,8 +15,7 @@ object XmlHelper {
     fun nonTextChildren(node: Node): List<Node> {
         val match = "#text"
         val childNodes = node.childNodes.asList()
-        val list = childNodes.filter { !it.nodeName.contains(match) }
-        return list
+        return childNodes.filter { !it.nodeName.contains(match) }
     }
 
     fun firstChildMatching(node: Node, match: String): Node? {


[isis] 08/08: Merge branch 'master' of https://github.com/apache/isis

Posted by jo...@apache.org.
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 e3f04ea130bd8bff7c63dd8d3a35dcc3b1b5adc2
Merge: f8b0286 5ffee67
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Thu May 7 17:58:49 2020 +0200

    Merge branch 'master' of https://github.com/apache/isis

 .../org/apache/isis/applib/value/Password.java     |  20 +
 .../apache/isis/core/commons/collections/Can.java  |   9 +
 .../isis/core/commons/collections/Can_Empty.java   |   7 +
 .../core/commons/collections/Can_Multiple.java     |   8 +
 .../core/commons/collections/Can_Singleton.java    |   6 +
 .../isis/core/commons/internal/base/_NullSafe.java |  31 ++
 .../commons/internal/collections/_Collections.java |   7 +-
 .../core/commons/internal/primitives/_Ints.java    |  31 ++
 .../core/commons/internal/primitives/IntsTest.java |  79 ++++
 ...eprocessor.java => CanonicalParameterUtil.java} |  46 +-
 .../core/metamodel/commons/MethodExtensions.java   |  24 +-
 .../isis/core/metamodel/facets/FacetedMethod.java  |  17 +-
 .../core/metamodel/facets/MethodFinderUtils.java   |  10 +-
 .../metamodel/facets/MethodLiteralConstants.java   |  75 +++-
 .../MethodPrefixBasedFacetFactoryAbstract.java     |   6 +-
 .../core/metamodel/facets/ParameterSupport.java    |  82 +++-
 .../facets/actcoll/typeof/TypeOfFacet.java         |  55 ++-
 .../action/ActionAnnotationFacetFactory.java       |   8 +-
 ...ctionInvocationFacetForDomainEventAbstract.java |   6 +-
 .../ActionDefaultsFacetViaMethodFactory.java       |  36 +-
 .../ActionValidationFacetViaMethodFactory.java     |  67 +--
 .../collparam/semantics/CollectionSemantics.java   |  11 +
 .../DisableForContextFacetViaMethodFactory.java    |  34 +-
 .../HideForContextFacetViaMethodFactory.java       |  39 +-
 .../method/ValidateObjectFacetMethodFactory.java   |  11 +-
 ...ParameterAutoCompleteFacetViaMethodFactory.java |  14 +-
 .../method/ActionChoicesFacetViaMethodFactory.java |  40 +-
 ...ctionParameterChoicesFacetViaMethodFactory.java |  23 +-
 ...tionParameterDefaultsFacetViaMethodFactory.java |  19 +-
 .../ActionParameterDisabledFacetViaMethod.java     |   6 +-
 ...tionParameterDisabledFacetViaMethodFactory.java |  27 +-
 ...ActionParameterHiddenFacetViaMethodFactory.java |  19 +-
 .../validate/ActionParameterValidationFacet.java   |  10 +-
 .../ActionParameterValidationFacetAbstract.java    |  13 +-
 .../ActionParameterValidationFacetViaMethod.java   |  28 +-
 ...onParameterValidationFacetViaMethodFactory.java |  88 ++--
 .../PropertyAutoCompleteFacetMethodFactory.java    |  14 +-
 .../PropertyChoicesFacetViaMethodFactory.java      |  13 +-
 .../PropertyDefaultFacetViaMethodFactory.java      |  13 +-
 .../PropertyValidateFacetViaMethodFactory.java     |  44 +-
 .../password/PasswordValueSemanticsProvider.java   |   5 +-
 .../interactions/ActionArgValidityContext.java     |  16 +-
 .../isis/core/metamodel/spec/ManagedObject.java    | 101 +----
 .../isis/core/metamodel/spec/ManagedObjects.java   | 111 +++++
 .../core/metamodel/spec/ObjectSpecification.java   |  53 ++-
 .../spec/feature/ObjectActionParameter.java        |  16 +
 .../core/metamodel/spec/feature/ObjectFeature.java |   2 +-
 .../specimpl/ObjectActionParameterAbstract.java    |  23 +-
 .../specloader/specimpl/PendingParameterModel.java |   7 +-
 .../specimpl/PendingParameterModelHead.java        |  13 +-
 .../specimpl/dflt/ObjectSpecificationDefault.java  |  14 +-
 .../actions/ActionMethodsFacetFactoryTest.java     |   4 +-
 .../testspec/ObjectSpecificationStub.java          |   4 +-
 .../dom/actions/assoc/AssociatedActionDemo.java    |   6 +-
 .../actions/depargs/DependentArgsActionDemo.java   |   1 -
 .../DependentArgsActionDemo_bulkAction.java        | 151 +++++++
 .../main/java/demoapp/webapp/DemoAppManifest.java  |   2 +-
 .../pdfjs/ui/components/PdfJsViewerPanel.java      |  23 +-
 .../viewer/common/model/HasParentUiModel.java}     |  10 +-
 .../apache/isis/viewer/common/model/HasTitle.java  |   7 +
 .../model/action/form/FormPendingParamUiModel.java |  57 +++
 .../common/model/action/form/FormUiModel.java}     |   7 +-
 .../action/form/PendingParameterManager.java}      |  14 +-
 .../common/model/feature/ParameterUiModel.java     |  90 ++++
 .../common/model/feature/PropertyUiModel.java      |  64 +++
 .../viewer/common/model/feature/ScalarUiModel.java |  72 ++++
 .../domainobjects/ActionResultReprRenderer.java    |   2 +-
 .../wicket/model/models/ActionArgumentCache.java   | 145 +++++++
 .../viewer/wicket/model/models/ActionModel.java    | 474 +++++++--------------
 .../wicket/model/models/BookmarkableModel.java     |   7 +-
 .../wicket/model/models/EntityCollectionModel.java | 118 +++--
 .../wicket/model/models/FormExecutorContext.java   |   4 +-
 .../wicket/model/models/InlinePromptContext.java   |  26 +-
 .../wicket/model/models/PageParameterUtil.java     | 261 ++++++++++++
 .../viewer/wicket/model/models/ScalarModel.java    |  63 +--
 .../wicket/model/models/ScalarParameterModel.java  | 204 ++-------
 .../wicket/model/models/ScalarPropertyModel.java   | 214 +++-------
 .../wicket/model/models/ActionModelTest.java       |   4 +-
 .../ui/components/actioninfo/ActionInfoPanel.java  |   3 +-
 .../ui/components/actionlink/ActionLinkPanel.java  |   2 +-
 .../actionlink/ActionLinkPanelFactory.java         |   2 +-
 .../actionmenu/entityactions/LinkAndLabelUtil.java |   2 +-
 .../actionprompt/ActionPromptHeaderPanel.java      |   6 +-
 .../components/actions/ActionParametersForm.java   | 100 ++---
 .../actions/ActionParametersFormPanel.java         |   3 +-
 .../components/actions/ActionParametersPanel.java  |   4 +-
 .../ui/components/collection/CollectionPanel.java  |  11 +-
 .../CollectionContentsAsAjaxTablePanel.java        |   2 +-
 .../CollectionContentsSortableDataProvider.java    |   3 +-
 .../columns/ObjectAdapterPropertyColumn.java       |  10 +-
 .../columns/ObjectAdapterToggleboxColumn.java      |  10 +-
 .../ui/components/property/PropertyEditPanel.java  |  32 +-
 .../property/PropertyFormExecutorStrategy.java     |   4 +-
 .../PropertyEditPromptHeaderPanel.java             |   9 +-
 .../ui/components/scalars/ScalarPanelAbstract.java |   2 +-
 .../components/scalars/ScalarPanelAbstract2.java   | 200 +++------
 .../scalars/ScalarPanelSelect2Abstract.java        |  45 +-
 .../scalars/ScalarPanelTextFieldAbstract.java      |  29 +-
 .../isisapplib/IsisBlobOrClobPanelAbstract.java    |  47 +-
 .../components/scalars/primitive/BooleanPanel.java |  22 +-
 .../scalars/reference/ReferencePanel.java          |  41 +-
 .../valuechoices/ValueChoicesSelect2Panel.java     |  27 +-
 .../StandaloneCollectionPanel.java                 |   2 +-
 .../widgets/checkbox/ContainedToggleboxPanel.java  |  11 +-
 .../widgets/linkandlabel/ActionLink.java           |   7 +-
 .../linkandlabel/LinkAndLabelFactoryAbstract.java  |   6 +-
 .../ui/components/widgets/select2/Select2.java     |  12 +-
 .../widgets/select2/Select2MultiChoiceExt.java     |   2 +-
 ...derForReferenceParamOrPropertyAutoComplete.java |  48 ++-
 .../ui/pages/actionprompt/ActionPromptPage.java    |  11 +-
 .../wicket/ui/pages/bootstrap-overrides-all-v2.css |   2 +-
 .../StandaloneCollectionPage.java                  |   2 +-
 .../viewer/wicket/ui/pages/value/ValuePage.java    |   2 +-
 .../wicket/ui/pages/voidreturn/VoidReturnPage.java |   2 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |   8 +-
 .../wicket/ui/panels/FormExecutorStrategy.java     |   5 +-
 .../wicket/ui/panels/PromptFormAbstract.java       |   5 +-
 117 files changed, 2505 insertions(+), 1727 deletions(-)


[isis] 01/08: ISIS-2342 scale image 1/n, cleanup

Posted by jo...@apache.org.
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) {
             ""


[isis] 05/08: Merge branch 'master' of https://github.com/apache/isis

Posted by jo...@apache.org.
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 c542086ffdb84215c6de71ccc523abb749daa733
Merge: a4d2560 017c916
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Fri May 1 16:53:40 2020 +0200

    Merge branch 'master' of https://github.com/apache/isis

 .../examples/mixins/layout/Object_openRestApi.java |   2 +-
 .../mixins/layout/Object_rebuildMetamodel.java     |   2 +-
 .../isis/applib/layout/grid/bootstrap3/BS3Col.java |   8 +-
 .../applib/mixins/layout/Object_openRestApi.java   |   2 +-
 .../mixins/layout/Object_rebuildMetamodel.java     |   2 +-
 .../isis/applib/services/grid/GridService.java     |   1 -
 .../isis/applib/services/jaxb/JaxbService.java     |   1 -
 core-parent/pom.xml                                |   1 +
 .../apache/isis/core/commons/collections/Can.java  |   9 +-
 .../isis/core/commons/collections/Can_Empty.java   |   2 +
 .../core/commons/collections/Can_Multiple.java     |   2 +
 .../core/commons/collections/Can_Singleton.java    |   2 +
 .../isis/core/commons/internal/base/_Either.java   |  18 +-
 .../isis/core/commons/internal/base/_NullSafe.java |  16 +-
 .../core/commons/internal/collections/_Arrays.java |   3 +
 .../core/commons/internal/primitives/_Ints.java    |  22 ++
 .../core/commons/internal/reflection/_Reflect.java |  19 ++
 .../isis/core/metamodel/commons/MethodUtil.java    |  40 ++-
 .../core/metamodel/facets/DomainEventHelper.java   |  10 +-
 .../isis/core/metamodel/facets/FacetFactory.java   |   4 +-
 .../core/metamodel/facets/MethodFinderUtils.java   | 118 +++++++-
 .../facets/OrphanedSupportingMethodValidator.java  |   2 +-
 ...ependentArgUtils.java => ParameterSupport.java} | 114 ++++++--
 ...nChoicesForCollectionParameterFacetFactory.java |   6 +-
 .../invocation/ActionDomainEventFacetAbstract.java |  16 +-
 .../action/invocation/ActionInvocationFacet.java   |   5 +-
 ...ctionInvocationFacetForDomainEventAbstract.java |  20 +-
 .../actions/validate/ActionValidationFacet.java    |   5 +-
 .../method/ActionValidationFacetViaMethod.java     |   3 +-
 ...tionAddToRemoveFromAndValidateFacetFactory.java |   4 +-
 .../facets/members/cssclassfa/CssClassFaFacet.java |  39 ++-
 .../cssclassfa/CssClassFaFacetAbstract.java        | 119 ++++++--
 .../object/autocomplete/AutoCompleteFacet.java     |   5 +-
 .../autocomplete/AutoCompleteFacetAbstract.java    |   7 +-
 .../objectvalue/typicallen/TypicalLengthFacet.java |  19 ++
 .../ActionParameterAutoCompleteFacet.java          |   5 +-
 .../ActionParameterAutoCompleteFacetViaMethod.java |  17 +-
 ...ParameterAutoCompleteFacetViaMethodFactory.java |  12 +-
 .../param/choices/ActionParameterChoicesFacet.java |   5 +-
 .../choices/ActionParameterChoicesFacetNone.java   |   5 +-
 ...rameterChoicesFacetDerivedFromChoicesFacet.java |   5 +-
 .../method/ActionChoicesFacetViaMethodFactory.java |   5 +-
 .../ActionParameterChoicesFacetViaMethod.java      |  15 +-
 ...ctionParameterChoicesFacetViaMethodFactory.java |  11 +-
 .../defaults/ActionParameterDefaultsFacet.java     |  12 +-
 .../ActionParameterDefaultsFacetViaMethod.java     |  99 ++++---
 ...tionParameterDefaultsFacetViaMethodFactory.java | 101 +++----
 .../disable/ActionParameterDisabledFacet.java      |   5 +-
 .../ActionParameterDisabledFacetViaMethod.java     |  14 +-
 ...tionParameterDisabledFacetViaMethodFactory.java |  11 +-
 .../param/hide/ActionParameterHiddenFacet.java     |   5 +-
 .../ActionParameterHiddenFacetViaMethod.java       |  14 +-
 ...ActionParameterHiddenFacetViaMethodFactory.java |  11 +-
 .../BooleanValueSemanticsProviderAbstract.java     |   2 +-
 .../facets/value/string/StringValueFacet.java      |   5 -
 .../value/string/StringValueSemanticsProvider.java |  13 +-
 .../TemporalValueSemanticsProviderAbstract.java    |  10 +-
 .../interactions/ActionArgUsabilityContext.java    |   9 +-
 .../interactions/ActionArgValidityContext.java     |  11 +-
 .../interactions/ActionArgVisibilityContext.java   |   9 +-
 .../interactions/ActionValidityContext.java        |   9 +-
 .../core/metamodel/layout/LayoutFacetUtil.java     |   2 +-
 .../metamodel/objectmanager/ObjectManager.java     |   2 +-
 ...arameterChoicesFacetFromParentedCollection.java |   4 +-
 ...meterDefaultsFacetFromAssociatedCollection.java |  11 +-
 .../isis/core/metamodel/spec/ManagedObject.java    | 112 ++++++--
 .../core/metamodel/spec/feature/ObjectAction.java  |  45 +--
 .../spec/feature/ObjectActionParameter.java        |  23 +-
 .../metamodel/spec/feature/ObjectAssociation.java  |   3 +
 .../spec/interaction/ActionInteraction.java        | 170 +++++++++++
 .../spec/interaction/CollectionInteraction.java    |  61 ++++
 .../spec/interaction/InteractionVeto.java          | 102 +++++++
 .../metamodel/spec/interaction/ManagedAction.java  |  88 ++++++
 .../spec/interaction/ManagedCollection.java        |  77 +++++
 .../metamodel/spec/interaction/ManagedMember.java  | 155 ++++++++++
 .../interaction/ManagedParameter.java}             |  48 ++--
 .../spec/interaction/ManagedParameterList.java     |  58 ++++
 .../spec/interaction/ManagedProperty.java          |  98 +++++++
 .../spec/interaction/MemberInteraction.java        | 107 +++++++
 .../spec/interaction/PropertyInteraction.java      |  62 ++++
 .../metamodel/specloader/specimpl/Factories.java   |  14 -
 .../specimpl/ObjectActionContributee.java          | 253 -----------------
 .../specloader/specimpl/ObjectActionDefault.java   |  93 +++---
 .../specloader/specimpl/ObjectActionMixedIn.java   |  12 +-
 .../specimpl/ObjectActionParameterAbstract.java    |  83 ++----
 .../ObjectActionParameterContributeeAbstract.java  |  93 ------
 .../ObjectActionParameterMixedInAbstract.java      |  39 +--
 .../specimpl/ObjectSpecificationAbstract.java      |  98 +------
 .../OneToManyActionParameterContributee.java       |  43 ---
 .../specimpl/OneToManyAssociationContributee.java  |   4 +-
 .../specimpl/OneToManyAssociationMixedIn.java      |   4 +-
 .../OneToOneActionParameterContributee.java        |  38 ---
 .../specimpl/OneToOneAssociationContributee.java   |   4 +-
 .../specimpl/OneToOneAssociationMixedIn.java       |   4 +-
 .../specloader/specimpl/PendingParameterModel.java | 147 ++++++++++
 .../metamodel/specloader/specimpl/Predicates.java  |  54 ----
 ...nLayoutXmlLayoutAnnotationFacetFactoryTest.java |   4 +-
 .../cssclassfa/CssClassFaFacetAbstractTest.java    |   6 +-
 .../DomainObjectLayoutFactoryTest.java             |   4 +-
 core/pom.xml                                       |   2 +-
 .../command/CommandExecutorServiceDefault.java     |   8 +-
 .../i18n/po/TranslationServicePoMenu.java          |   2 +-
 .../handlers/DomainObjectInvocationHandler.java    |  18 +-
 .../security/authentication/logout/LogoutMenu.java |   2 +-
 .../webapp/context/IsisWebAppCommonContext.java    |   9 +
 ...entoService.java => ObjectMementoForEmpty.java} |  39 ++-
 .../context/memento/ObjectMementoService.java      |   4 +
 examples/demo/pom.xml                              | 201 +------------
 .../DependentArgsActionDemo_useAutoComplete.java   |  15 +-
 .../DependentArgsActionDemo_useChoices.java        |  17 +-
 .../DependentArgsActionDemo_useDefault.java        |  15 +-
 .../DependentArgsActionDemo_useDisable.java        |  10 +-
 .../depargs/DependentArgsActionDemo_useHide.java   |  17 +-
 .../java/demoapp/dom/linebreaker/LineBreaker.java  |  35 +++
 .../java/demoapp/dom/types/FeaturedTypesMenu.java  |   2 +-
 .../java/demoapp/dom/types/time/TemporalDemo.java  |  23 +-
 .../demo/src/main/java/demoapp/utils/DemoStub.java |   2 +-
 .../main/java/demoapp/utils/ThereCanBeOnlyOne.java |  57 ++++
 .../demo/src/main/java/demoapp/webapp/DemoApp.java | 173 ------------
 .../main/java/demoapp/webapp/DemoAppManifest.java  | 139 +++++++++
 .../main/java/demoapp/webapp/menubars.layout.xml   |   1 +
 examples/{demo-vaadin => demo/vaadin}/pom.xml      |   9 +-
 .../java/demoapp/webapp/vaadin}/DemoAppVaadin.java |  19 +-
 .../vaadin}/src/main/resources/log4j2-spring.xml   |   0
 examples/demo/{ => wicket}/pom.xml                 |  17 +-
 .../java/demoapp/webapp/wicket/DemoAppWicket.java} |  37 +--
 .../wicket}/src/main/resources/log4j2-spring.xml   |  18 ++
 .../model/good/ProperParameterSupport.java         | 131 +++++++++
 .../testdomain/auditing/AuditerServiceTest.java    |   3 +-
 .../publishing/PublisherServiceTest.java           |   3 +-
 .../vaadin/model/action/ActionFactoryVaa.java      |  14 +-
 .../viewer/vaadin/model/decorator/Decorators.java  | 104 +++++--
 incubator/viewers/vaadin/ui/pom.xml                |  31 +-
 .../vaadin/ui/IsisModuleIncViewerVaadinUi.java     |  22 +-
 .../viewer/vaadin/ui/binding/BinderUtil.java       | 166 +++++++++++
 .../ui/components/UiComponentFactoryVaa.java       |  62 ++++
 .../ui/components/UiComponentHandlerVaa.java       |  11 +-
 .../vaadin/ui/components/blob/BlobField.java       |  68 +++++
 .../ui/components/blob/BlobFieldFactory.java       |  49 ++++
 .../vaadin/ui/components/clob/ClobField.java       |  48 +++-
 .../ui/components/clob/ClobFieldFactory.java       |  49 ++++
 .../vaadin/ui/components/collection/TableView.java |  63 +++--
 .../vaadin/ui/components/debug/DebugField.java     |  77 +++++
 .../vaadin/ui/components/debug/DebugUiModel.java   |  24 +-
 .../vaadin/ui/components/markup/MarkupField.java   |  47 ++--
 .../ui/components/markup/MarkupFieldFactory.java   |  47 ++++
 .../ui/components/object/ObjectFormView.java       | 311 ++++++++++++++-------
 .../ui/components/other/FallbackFieldFactory.java  |  97 +++++++
 .../vaadin/ui/components/temporal/DateField.java   |  48 ++--
 .../components/temporal/TemporalFieldFactory.java  | 125 +++++++++
 .../ui/components/text/TextFieldFactory.java       |  61 ++++
 .../ui/components/text/uuid/UuidFieldFactory.java  |  78 ++++++
 .../viewer/vaadin/ui/pages/main/MainView.java      |  18 +-
 .../ui/pages/main/MainView_createHeader.java       |  37 ++-
 .../viewer/vaadin/ui/util/LocalResourceUtil.java   |  61 ++++
 scripts/ci/build-demo-app.sh                       |  31 +-
 valuetypes/asciidoc/ui/pom.xml                     |  18 +-
 .../asciidoc/ui/components/js/prism1.14.js         |   8 -
 valuetypes/asciidoc/ui/vaadin/pom.xml              |  42 +++
 .../ui/vaa/IsisModuleValAsciidocUiVaa.java}        |   9 +-
 .../ui/vaa/components/AsciiDocFieldFactoryVaa.java |  59 ++++
 .../ui/vaa/components/AsciiDocFieldVaa.java        |  64 +++++
 .../asciidoc/ui/vaa/components/PrismResources.java |  45 +++
 .../main/resources/static/prism/css/prism1.20.css} |  92 +++---
 .../main/resources/static/prism/js/prism1.20.js    |  13 +
 valuetypes/asciidoc/ui/wicket/pom.xml              |  41 +++
 .../ui/wkt/IsisModuleValAsciidocUiWkt.java}        |  10 +-
 .../ui/wkt/components/AsciiDocComponentWkt.java}   |  27 +-
 .../wkt/components/AsciiDocPanelFactoriesWkt.java} |   8 +-
 .../ui/wkt/components/prism/PrismResources.java    |  40 +++
 .../ui/wkt/components/prism/css/prism1.20.css}     |  92 +++---
 .../ui/wkt/components/prism/js/prism1.20.js        |  13 +
 valuetypes/pom.xml                                 |   7 +-
 viewers/common/pom.xml                             |   6 +
 .../action/ActionLinkUiComponentDecorator.java     |  25 +-
 .../common/model/action/ActionUiMetaModel.java     |  19 +-
 .../viewer/common/model/action/ActionUiModel.java  |   4 +-
 .../common/model/binding/UiComponentFactory.java   | 142 ++++++++++
 .../model/binding/interaction/ObjectBinding.java   |  81 ++++++
 .../ConfirmDecorator.java}                         |   8 +-
 .../model/decorator/confirm/ConfirmUiModel.java    |  68 +++++
 .../DangerDecorator.java}                          |   8 +-
 .../DisableDecorator.java}                         |   8 +-
 .../DisableUiModel.java}                           |  37 +--
 .../model/decorator/fa/FontAwesomeDecorator.java   |  10 +-
 .../model/decorator/fa/FontAwesomeUiModel.java     |  27 +-
 .../PrototypingDecorator.java}                     |   8 +-
 .../model/decorator/tooltip/TooltipDecorator.java  |  20 +-
 .../common/model/gridlayout/UiGridLayout.java      | 162 +++++++++++
 .../isis/viewer/common/model/menu/MenuUiModel.java |  30 +-
 .../model/menu/MenuUiModel_buildMenuItems.java     |  42 ++-
 .../common/model/menuitem/MenuItemUiModel.java     |   2 +
 .../model/userprofile/UserProfileUiModel.java      |   4 +
 .../userprofile/UserProfileUiModelProvider.java    |   5 +-
 .../AbstractObjectMemberReprRenderer.java          |  21 +-
 .../domainobjects/DomainObjectReprRenderer.java    |   9 +-
 .../rendering/domainobjects/MemberReprMode.java    |  29 --
 .../domainobjects/ObjectActionReprRenderer.java    |  10 +-
 .../domainobjects/ObjectAndActionInvocation.java   |  27 +-
 .../domainobjects/ObjectAndCollection2.java        |  39 ---
 .../rendering/domainobjects/ObjectAndMember.java   |  41 ---
 .../rendering/domainobjects/ObjectAndProperty.java |  30 --
 .../ObjectCollectionReprRenderer.java              |   3 +-
 .../domainobjects/ObjectPropertyReprRenderer.java  |   3 +-
 .../rendering/service/RepresentationService.java   |  20 +-
 .../RepresentationServiceContentNegotiator.java    |  19 +-
 .../service/conneg/ContentNegotiationService.java  |  12 +-
 .../conneg/ContentNegotiationServiceAbstract.java  |  12 +-
 ...entNegotiationServiceForRestfulObjectsV1_0.java |  33 +--
 .../ContentNegotiationServiceOrgApacheIsisV1.java  |  17 +-
 .../service/swagger/SwaggerServiceMenu.java        |   4 +-
 viewers/restfulobjects/viewer/pom.xml              |   5 +
 .../restfulobjects/viewer/mappers/FailureUtil.java |   8 +-
 .../resources/DomainObjectResourceServerside.java  | 102 +++----
 .../viewer/resources/DomainResourceHelper.java     | 134 +++++----
 .../resources/InteractionFailureHandler.java       |  95 +++++++
 .../viewer/resources/ObjectActionArgHelper.java    |  33 +--
 .../resources/ObjectAdapterAccessHelper.java       | 136 ++++-----
 .../links/ActionLinkUiComponentFactoryWkt.java}    |  16 +-
 .../viewer/wicket/model/links/LinkAndLabel.java    |  65 ++++-
 .../wicket/model/links/ListOfLinksModel.java       |  28 +-
 .../wicket/model/models/ActionArgumentModel.java   |   5 +-
 .../viewer/wicket/model/models/ActionModel.java    |  27 +-
 .../viewer/wicket/model/models/EntityModel.java    |  30 +-
 .../viewer/wicket/model/models/ScalarModel.java    | 108 ++++---
 viewers/wicket/ui/pom.xml                          |   4 +
 .../components/actionmenu/CssClassFaBehavior.java  |   4 +-
 .../entityactions/AdditionalLinksPanel.java        |  34 +--
 .../entityactions/EntityActionLinkFactory.java     |  17 +-
 .../actionmenu/serviceactions/CssMenuItem.java     |  66 ++++-
 .../serviceactions/MenuActionLinkFactory.java      |  10 +-
 .../actionmenu/serviceactions/MenuActionWkt.java   |  39 ---
 .../serviceactions/ServiceActionUtil.java          |  60 ++--
 .../components/actions/ActionParametersForm.java   |  13 +-
 .../entity/icontitle/EntityIconAndTitlePanel.java  |  11 +-
 .../components/scalars/ScalarPanelAbstract2.java   |  16 +-
 .../scalars/ScalarPanelSelect2Abstract.java        |  11 +-
 .../scalars/markup/MarkupComponent_reloadJs.java   |   6 +-
 .../scalars/reference/ReferencePanel.java          |  19 +-
 .../valuechoices/ValueChoicesSelect2Panel.java     |  14 +-
 .../ObjectAdapterMementoProviderAbstract.java      |  33 +--
 .../ObjectAdapterMementoProviderForChoices.java    |   5 +-
 ...tAdapterMementoProviderForReferenceChoices.java |  11 +-
 ...entoProviderForReferenceObjectAutoComplete.java |  10 +-
 ...derForReferenceParamOrPropertyAutoComplete.java |  37 +--
 ...bjectAdapterMementoProviderForValueChoices.java |  23 +-
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  |   4 +-
 .../isis/viewer/wicket/ui/pages/home/HomePage.java |   2 +-
 .../isis/viewer/wicket/ui/util/Confirmations.java  |  82 ------
 .../isis/viewer/wicket/ui/util/Decorators.java     | 174 +++++++++++-
 .../ui/util/FontAwesomeCssReferenceWkt.java}       |  37 +--
 .../isis/viewer/wicket/ui/util/Tooltips.java       |   7 +-
 ...tAdapterMementoProviderForValueChoicesTest.java |  13 +-
 .../wicket/viewer/mixins/Object_clearHints.java    |   2 +-
 .../mementos/ObjectMementoServiceWicket.java       |  33 ++-
 255 files changed, 6235 insertions(+), 3057 deletions(-)


[isis] 04/08: ISIS-2342 scale image 2/n

Posted by jo...@apache.org.
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 a4d256056e88239dde0ba4ce3b69c7705d7d3aca
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Fri May 1 16:53:26 2020 +0200

    ISIS-2342 scale image 2/n
---
 .../client/kroviz/utils/ScalableVectorGraphic.kt   | 51 ++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/ScalableVectorGraphic.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/ScalableVectorGraphic.kt
new file mode 100644
index 0000000..777ff76
--- /dev/null
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/ScalableVectorGraphic.kt
@@ -0,0 +1,51 @@
+package org.apache.isis.client.kroviz.utils
+
+import org.w3c.dom.Document
+import org.w3c.dom.parsing.XMLSerializer
+import org.w3c.dom.svg.SVGSVGElement
+
+class ScalableVectorGraphic(val document: Document) {
+
+    private fun root(): SVGSVGElement {
+        return document.rootElement!!
+    }
+
+    fun setHeight(height: Int) {
+        root().setAttribute("height", height.toString() + "px")
+    }
+
+    fun getHeight(): Int {
+        val raw = root().getAttribute("height") as String
+        val value = raw.replace("px", "")
+        return value.toInt()
+    }
+
+    fun setWidth(width: Int) {
+        root().setAttribute("width", width.toString() + "px")
+    }
+
+    fun getWidth(): Int {
+        val raw = root().getAttribute("width") as String
+        val value = raw.replace("px", "")
+        return value.toInt()
+    }
+
+    fun scaleUp(factor: Double = 0.1) {
+        var f = factor
+        if (factor < 1) f = 1 + factor
+        val oldHeight = getHeight()
+        val oldWidth = getWidth()
+        setHeight((oldHeight * f).toInt())
+        setWidth((oldWidth * f).toInt())
+    }
+
+    fun scaleDown(factor: Double = 0.1) {
+        scaleUp(factor * -1)
+    }
+
+    fun serialized(): String {
+        val srlzr = XMLSerializer()
+        return srlzr.serializeToString(document)
+    }
+
+}


[isis] 02/08: Merge branch 'master' of https://github.com/apache/isis

Posted by jo...@apache.org.
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 550cb99e403da3863b5c2ce3cb1d1d43fa7b61f1
Merge: 9133164 8011f7a
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Sun Apr 12 10:40:59 2020 +0200

    Merge branch 'master' of https://github.com/apache/isis

 .../ROOT/pages/antora-publish-procedure.adoc       |   2 +-
 .../modules/ROOT/pages/verifying-releases.adoc     |   2 +-
 .../going-deeper/articles-and-presentations.adoc   |   4 +-
 .../modules/ROOT/pages/going-deeper/books.adoc     |   2 +
 .../fun/pages/concepts-patterns/architecture.adoc  |   2 +-
 .../modules/applib-svc/pages/RoutingService.adoc   |   2 +-
 .../adoc/modules/applib-svc/pages/SudoService.adoc |   3 +-
 .../applib-svc/pages/TableColumnOrderService.adoc  |   2 +-
 .../applib-svc/pages/_BackgroundService.adoc       |   2 +-
 .../main/adoc/modules/applib-svc/pages/about.adoc  |   3 +-
 .../layout/component/CssClassFaPosition.java       |   6 +-
 .../src/main/adoc/modules/schema/pages/chg.adoc    |   2 +-
 .../src/main/adoc/modules/schema/pages/cmd.adoc    |   2 +-
 .../pages/ContentNegotiationService.adoc           |   2 +-
 .../pages/PublisherDispatchService.adoc            |   2 +-
 .../pages/RepresentationService.adoc               |   2 +-
 incubator/clients/kroviz/{gradlew => gradlew.sh}   |   0
 incubator/clients/kroviz/pom.xml                   |  33 ++++-
 ...ActionFactoryVaa.java => ActionFactoryVaa.java} |  45 ++++--
 .../action/{MenuActionVaa.java => ActionVaa.java}  |  18 +--
 .../model/action/MenuActionLinkFactoryVaa.java     |  89 -----------
 .../viewer/vaadin/model/decorator/Decorators.java  |  98 +++++++++++++
 .../viewer/vaadin/model/menu/MenuItemVaa.java      |  12 +-
 .../viewer/vaadin/ui/pages/main/MainView.java      |   4 +-
 .../ui/pages/main/MainView_createHeader.java       |  14 +-
 .../viewer/vaadin/viewer/IsisServletForVaadin.java |   9 +-
 testing/adoc/modules/ROOT/pages/about.adoc         |   2 +-
 .../isis/viewer/common/model/HasUiComponent.java   |  11 +-
 ...el.java => ActionLinkUiComponentDecorator.java} |  25 +---
 .../model/action/ActionLinkUiComponentFactory.java |  20 ++-
 .../common/model/action/ActionUiMetaModel.java     | 144 ++++++++++++++++++
 .../viewer/common/model/action/ActionUiModel.java  |  90 ++++++++++--
 .../common/model/action/ActionUiModelFactory.java  |  49 ++++---
 .../common/model/action/MenuActionFactory.java     |  15 --
 .../model/decorator/fa/FontAwesomeDecorator.java   |  13 +-
 .../model/decorator/fa/FontAwesomeUiModel.java     |  59 ++++++++
 .../model/decorator/tooltip/TooltipDecorator.java  |  42 +++---
 .../model/decorator/tooltip/TooltipUiModel.java    |  38 +++--
 .../common/model/header/HeaderUiModelProvider.java |  18 +++
 .../common/model/link/ActionLinkFactory.java       |  14 --
 .../common/model/link/LinkAndLabelUiModel.java     |  55 -------
 .../model/link/LinkAndLabelUiModelAbstract.java    | 163 ---------------------
 .../isis/viewer/common/model/menu/MenuUiModel.java |   4 +-
 .../model/menu/MenuUiModel_buildMenuItems.java     |  10 +-
 .../common/model/menuitem/MenuItemUiModel.java     | 123 ++--------------
 .../userprofile/UserProfileUiModelProvider.java    |  18 +++
 .../pages/extending/replacing-page-elements.adoc   |   3 +-
 .../viewer/wicket/model/links/LinkAndLabel.java    |  38 +++--
 .../components/actionmenu/CssClassFaBehavior.java  |  19 ++-
 .../entityactions/AdditionalLinksPanel.java        |  42 +++---
 .../entityactions/EntityActionLinkFactory.java     |  15 +-
 .../actionmenu/entityactions/LinkAndLabelUtil.java |   9 +-
 .../actionmenu/serviceactions/CssMenuItem.java     |  54 +++----
 .../serviceactions/MenuActionLinkFactory.java      |  17 +--
 .../actionmenu/serviceactions/MenuActionWkt.java   |  16 +-
 .../serviceactions/ServiceActionUtil.java          |  79 +++++-----
 .../serviceactions/ServiceActionsPanel.java        |   2 +-
 .../ui/components/scalars/ScalarPanelAbstract.java |   2 +-
 .../components/scalars/ScalarPanelAbstract2.java   |   6 +-
 ...icket.java => LinkAndLabelFactoryAbstract.java} |  22 +--
 .../isis/viewer/wicket/ui/util/Decorators.java     |  79 ++++++++++
 .../isis/viewer/wicket/ui/util/Tooltips.java       |  47 +++---
 62 files changed, 915 insertions(+), 810 deletions(-)