Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display color content in a no detail block without pointing on record [APPS-02A6] #630

Merged
merged 3 commits into from
Sep 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading