Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/galite-02A6'
Browse files Browse the repository at this point in the history
	- Fix: Display color content in a no detail block [APPS-02A6][PR#630]
  • Loading branch information
mgrati committed Sep 19, 2024
2 parents 9b9435a + 9e649a4 commit 0077755
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 21 deletions.
13 changes: 13 additions & 0 deletions galite-core/src/main/kotlin/org/kopi/galite/visual/base/Utils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

package org.kopi.galite.visual.base

import java.awt.Color
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.io.DataInputStream
Expand Down Expand Up @@ -231,6 +232,18 @@ open class Utils : org.kopi.galite.util.base.Utils() {
}
}

/**
* Convert a java.awt.Color to HexString
*/
fun colorToRgbString(c: Color?): String {
val color = c ?: Color(0,0,0)
val redHex = String.format("%02x", color.red)
val greenHex = String.format("%02x", color.green)
val blueHex = String.format("%02x", color.blue)

return "$redHex$greenHex$blueHex"
}

// ----------------------------------------------------------------------
// PRIVATE DATA
// ----------------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ import kotlin.reflect.KClass

import org.jetbrains.exposed.sql.Column
import org.jetbrains.exposed.sql.ResultRow
import org.kopi.galite.visual.VlibProperties
import org.kopi.galite.visual.list.VColorColumn
import org.kopi.galite.visual.list.VListColumn
import org.kopi.galite.util.base.InconsistencyException
import org.kopi.galite.visual.VlibProperties

class VColorField(val bufferSize: Int) : VField(1,1) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,6 @@ package org.kopi.galite.visual.ui.vaadin.form
import java.awt.Color
import java.util.stream.Stream

import org.kopi.galite.visual.base.UComponent
import org.kopi.galite.visual.form.Alignment
import org.kopi.galite.visual.form.VActorField
import org.kopi.galite.visual.form.VBlock
import org.kopi.galite.visual.form.VBooleanField
import org.kopi.galite.visual.form.VConstants
import org.kopi.galite.visual.form.VField
import org.kopi.galite.visual.form.VFieldUI
import org.kopi.galite.visual.ui.vaadin.base.BackgroundThreadHandler.access
import org.kopi.galite.visual.ui.vaadin.block.BlockLayout
import org.kopi.galite.visual.ui.vaadin.block.SingleComponentBlockLayout
import org.kopi.galite.visual.ui.vaadin.grid.GridEditorField
import org.kopi.galite.visual.Action
import org.kopi.galite.visual.VColor
import org.kopi.galite.visual.VException

import com.vaadin.flow.component.UI
import com.vaadin.flow.component.dependency.CssImport
import com.vaadin.flow.component.grid.ColumnResizeEvent
Expand All @@ -47,6 +31,7 @@ import com.vaadin.flow.component.grid.HeaderRow
import com.vaadin.flow.component.grid.editor.Editor
import com.vaadin.flow.component.grid.editor.EditorImpl
import com.vaadin.flow.component.html.Div
import com.vaadin.flow.component.html.Input
import com.vaadin.flow.component.icon.Icon
import com.vaadin.flow.component.icon.VaadinIcon
import com.vaadin.flow.component.textfield.TextField
Expand All @@ -60,6 +45,23 @@ import com.vaadin.flow.function.SerializableConsumer
import com.vaadin.flow.function.SerializablePredicate
import com.vaadin.flow.internal.ExecutionContext

import org.kopi.galite.visual.Action
import org.kopi.galite.visual.VColor
import org.kopi.galite.visual.VException
import org.kopi.galite.visual.base.UComponent
import org.kopi.galite.visual.base.Utils
import org.kopi.galite.visual.form.Alignment
import org.kopi.galite.visual.form.VActorField
import org.kopi.galite.visual.form.VBlock
import org.kopi.galite.visual.form.VBooleanField
import org.kopi.galite.visual.form.VConstants
import org.kopi.galite.visual.form.VField
import org.kopi.galite.visual.form.VFieldUI
import org.kopi.galite.visual.ui.vaadin.base.BackgroundThreadHandler.access
import org.kopi.galite.visual.ui.vaadin.block.BlockLayout
import org.kopi.galite.visual.ui.vaadin.block.SingleComponentBlockLayout
import org.kopi.galite.visual.ui.vaadin.grid.GridEditorField

/**
* Grid based chart block implementation.
*/
Expand Down Expand Up @@ -497,9 +499,18 @@ open class DGridBlock(parent: DForm, model: VBlock) : DBlock(parent, model) {

// Create a div element and set its background and foreground colors
val div = Div()
div.text = if (value is Color) "" else columnView.editorField.format(value)?.toString() ?: ""
backgroundColor?.let { div.style.set("background-color", "rgb(${it.red}, ${it.green}, ${it.blue})") }
foregroundColor?.let { div.style.set("color", "rgb(${it.red}, ${it.green}, ${it.blue})") }
if (value is Color) {
val input = Input()

input.type = "color"
input.value = "#" + Utils.colorToRgbString(value)
input.isReadOnly = true
div.add(input)
} else {
div.text = columnView.editorField.format(value)?.toString() ?: ""
backgroundColor?.let { div.style.set("background-color", "rgb(${it.red}, ${it.green}, ${it.blue})") }
foregroundColor?.let { div.style.set("color", "rgb(${it.red}, ${it.green}, ${it.blue})") }
}
div
})
.setKey(i.toString())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,8 @@ class ClientForm : DictionaryForm(title = "Clients", locale = Locale.UK) {
command(item = report) { createReport { ClientR() } }
command(item = pivotTable) { createPivotTable { ClientP() } }
command(item = dynamicReport) { createDynamicReport() }
command(item = list) { recursiveQuery() } }
command(item = list) { recursiveQuery() }
}
}

object ClientID : ListDomain<Int>(30) {
Expand Down

0 comments on commit 0077755

Please sign in to comment.